标签:
The requirement for the automation is that, if I send a WhatsApp ‘wru’ message to the phone,
it should respond back giving the location and battery level of my phone.
It could be useful, if you like to locate your misplaced phone or automatically reply to your partner/friend,
honestly, I don’t know what you will use it - through this post, I am just introducing automating WhatsApp using Tasker.
Before we begin, the following script only works when your phone is rooted as
we will be accessing the WhatsApp database and type some special characters like ‘:’.
Let’s follow the code line by line:
Profile: Location request from XYZ. (12) // Name of your profile. Event: Notification [ Owner Application:WhatsApp Title:* ] // When a new notification comes from WhatsApp, this event is fired. // Read the end note, if you face problems with Chrome app after enabling Tasker accessibility. Enter: A1: Run Shell [ Command:sqlite3 /data/data/com.whatsapp/databases/msgstore.db "SELECT _id, data FROM messages WHERE key_from_me=‘0‘ AND key_remote_jid LIKE ‘%XXXXXXXXXXX%‘ ORDER BY _id DESC LIMIT 1;" Timeout (Seconds):10 Use Root:On Store Result In:%WHATSAPP_CURRREQ ] // We will access the WhatsApp database and check if the message comes from designated phone number or not. We mustn’t reply to every message. // Replace XXXXXXXXXXX with the phone number of your message sender. // I made a timeout for 10 seconds, if in case WhatsApp is busy accessing the database. // Store the read Id and the last message on to the variable %WHATSAPP_CURRREQ A2: If [ %WHATSAPP_CURRREQ ~R .*[wW][rR][uU].* ] // Check if the pattern of the message is correct and we are all set to send the location. A3: If [ %WHATSAPP_CURRREQ !~ %WHATSAPP_LASTREQ ] // Verify that the message is different from the last request. Remember every message has a unique Id. A4: Notify [ Title:WhatsApp location request... Text:Sending location to Kavita Gupta... Icon:<icon> Number:0 Permanent:On Priority:3 ] // Just a notification that the location message is being prepared. // Make a note it is a permanent notification, we will clear it later. A5: Secure Settings [ Configuration:Pattern Lock Disabled Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ] // I am disabling the pattern lock, that I use using the plugin Secure Settings. // You can download the plugin from here: https://play.google.com/store/apps/details?id=com.intangibleobject.securesettings.plugin&hl=en A6: Secure Settings [ Configuration:Keyguard Disabled Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ] // Disable the keygaurd, it is useful, when your phone is on lock and you want to automate everything, even the typing. A7: Secure Settings [ Configuration:GPS Enabled Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ] // Pretty clear, turn on the GPS and get location at A8 A8: AutoShortcut [ Configuration:WhatsApp: Some One Package:com.joaomgcd.autoshortcut Name:AutoShortcut ] // I am using AutoShortcut plugin (https://play.google.com/store/apps/details?id=com.joaomgcd.autoshortcut) to start WhatsApp with the indented recipient. // Replace Some One, actually choose it from the plugin, the right recipient. A9: Get Location [ Source:Any Timeout (Seconds):30 Continue Task Immediately:Off Keep Tracking:Off ] // I am getting the location, timeout is 30 seconds, adjust it accordingly. A10: Secure Settings [ Configuration:Screen Dim 5 Seconds Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ] // Now, this extension of the plugin Secure Settings, wakes your device so that you can type out the string on the WhatsApp app. A11: Run Shell [ Command:input text LOCATION:maps.google.com/maps?q=%LOC Timeout (Seconds):0 Use Root:On Store Result In: ] // Now, I am using the shell script to type the text to the window, because the ‘:’ while not be typed from the Type task in Tasker. // And also, this is way faster, but remember you need root for this, not for the other way of typing. A12: Dpad [ Button:Right Repeat Times:1 ] // Focus the Send button A13: Dpad [ Button:Press Repeat Times:1 ] // And press it. A14: Dpad [ Button:Left Repeat Times:1 ] // Get back to the typing box. A15: Run Shell [ Command:input text LOCATION_ACCURACY:%LOCACC Timeout (Seconds):0 Use Root:On Store Result In: ] A16: Dpad [ Button:Right Repeat Times:1 ] A17: Dpad [ Button:Press Repeat Times:1 ] A18: Dpad [ Button:Left Repeat Times:1 ] A19: Run Shell [ Command:input text BATTERY_LEVEL:%BATT% Timeout (Seconds):0 Use Root:On Store Result In: ] // I am adding Battery level in my case as well. A20: Dpad [ Button:Right Repeat Times:1 ] A21: Dpad [ Button:Press Repeat Times:1 ] A22: Variable Set [ Name:%WHATSAPP_LASTREQ To:%WHATSAPP_CURRREQ Do Maths:Off Append:Off ] // And now, we say, request is done. A23: Button [ Button:Back ] // I am exiting the WhatsApp nicely and not killing it. If you are the murderer kind, kill it, just know, you don’t have any place in the heaven. A24: Button [ Button:Back ] A25: Notify Cancel [ Title: Warn Not Exist:Off ] // Remove the permanent notification. A26: Notify [ Title:WhatsApp location request Text:Location sent successfully. Icon:<icon> Number:0 Permanent:Off Priority:3 ] // Make a temporary notification, and say, location is sent. A27: Secure Settings [ Configuration:GPS Disabled Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ] // Disable all the horrible things we turned on earlier. A28: Secure Settings [ Configuration:Pattern Lock Enabled Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ] A29: Secure Settings [ Configuration:Keyguard Enabled Package:com.intangibleobject.securesettings.plugin Name:Secure Settings ] A30: End If A31: End If
<TaskerData sr="" dvi="1" tv="1.3.2u1"> <Profile sr="prof12" ve="2"> <cdate>1352377806966</cdate> <clp>true</clp> <edate>1352473212546</edate> <id>12</id> <mid0>13</mid0> <nme>Location request from Some One.</nme> <Event sr="con0" ve="2"> <code>461</code> <App sr="arg0"> <appClass>com.whatsapp.Main</appClass> <appPkg>com.whatsapp</appPkg> <label>WhatsApp</label> </App> <Str sr="arg1" ve="3"/> </Event> </Profile> <Task sr="task13"> <cdate>1352377810717</cdate> <edate>1352473212546</edate> <id>13</id> <pri>10</pri> <Action sr="act0" ve="3"> <code>123</code> <Str sr="arg0" ve="3">sqlite3 /data/data/com.whatsapp/databases/msgstore.db "SELECT _id, data FROM messages WHERE key_from_me=‘0‘ AND key_remote_jid LIKE ‘%PHONE_NUMBER%‘ ORDER BY _id DESC LIMIT 1;"</Str> <Int sr="arg1" val="10"/> <Int sr="arg2" val="1"/> <Str sr="arg3" ve="3">%WHATSAPP_CURRREQ</Str> </Action> <Action sr="act1" ve="3"> <code>37</code> <lhs>%WHATSAPP_CURRREQ</lhs> <op>11</op> <rhs>.*[wW][rR][uU].*</rhs> </Action> <Action sr="act10" ve="3"> <code>123</code> <Str sr="arg0" ve="3">input text LOCATION:maps.google.com/maps?q=%LOC</Str> <Int sr="arg1" val="0"/> <Int sr="arg2" val="1"/> <Str sr="arg3" ve="3"/> </Action> <Action sr="act11" ve="3"> <code>701</code> <Int sr="arg0" val="3"/> <Int sr="arg1" val="1"/> </Action> <Action sr="act12" ve="3"> <code>701</code> <Int sr="arg0" val="4"/> <Int sr="arg1" val="1"/> </Action> <Action sr="act13" ve="3"> <code>701</code> <Int sr="arg0" val="2"/> <Int sr="arg1" val="1"/> </Action> <Action sr="act14" ve="3"> <code>123</code> <Str sr="arg0" ve="3">input text LOCATION_ACCURACY:%LOCACC</Str> <Int sr="arg1" val="0"/> <Int sr="arg2" val="1"/> <Str sr="arg3" ve="3"/> </Action> <Action sr="act15" ve="3"> <code>701</code> <Int sr="arg0" val="3"/> <Int sr="arg1" val="1"/> </Action> <Action sr="act16" ve="3"> <code>701</code> <Int sr="arg0" val="4"/> <Int sr="arg1" val="1"/> </Action> <Action sr="act17" ve="3"> <code>701</code> <Int sr="arg0" val="2"/> <Int sr="arg1" val="1"/> </Action> <Action sr="act18" ve="3"> <code>123</code> <Str sr="arg0" ve="3">input text BATTERY_LEVEL:%BATT%</Str> <Int sr="arg1" val="0"/> <Int sr="arg2" val="1"/> <Str sr="arg3" ve="3"/> </Action> <Action sr="act19" ve="3"> <code>701</code> <Int sr="arg0" val="3"/> <Int sr="arg1" val="1"/> </Action> <Action sr="act2" ve="3"> <code>37</code> <lhs>%WHATSAPP_CURRREQ</lhs> <op>2</op> <rhs>%WHATSAPP_LASTREQ</rhs> </Action> <Action sr="act20" ve="3"> <code>701</code> <Int sr="arg0" val="4"/> <Int sr="arg1" val="1"/> </Action> <Action sr="act21" ve="3"> <code>547</code> <Str sr="arg0" ve="3">%WHATSAPP_LASTREQ</Str> <Str sr="arg1" ve="3">%WHATSAPP_CURRREQ</Str> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> </Action> <Action sr="act22" ve="3"> <code>703</code> <Int sr="arg0" val="0"/> </Action> <Action sr="act23" ve="3"> <code>703</code> <Int sr="arg0" val="0"/> </Action> <Action sr="act24" ve="3"> <code>779</code> <Str sr="arg0" ve="3"/> <Int sr="arg1" val="0"/> </Action> <Action sr="act25" ve="3"> <code>523</code> <Str sr="arg0" ve="3">WhatsApp location request</Str> <Str sr="arg1" ve="3">Location sent successfully.</Str> <Img sr="arg2" ve="2"> <icn>17301571</icn> </Img> <Int sr="arg3" val="0"/> <Int sr="arg4" val="0"/> <Int sr="arg5" val="3"/> </Action> <Action sr="act26" ve="3"> <code>11820</code> <Bundle sr="arg0"> <Vals sr="val"> <com.intangibleobject.securesettings.plugin.extra.BLURB>GPS Disabled</com.intangibleobject.securesettings.plugin.extra.BLURB> <com.intangibleobject.securesettings.plugin.extra.BLURB-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.BLURB-type> <com.intangibleobject.securesettings.plugin.extra.ENABLED>false</com.intangibleobject.securesettings.plugin.extra.ENABLED> <com.intangibleobject.securesettings.plugin.extra.ENABLED-type>java.lang.Boolean</com.intangibleobject.securesettings.plugin.extra.ENABLED-type> <com.intangibleobject.securesettings.plugin.extra.SETTING>gps</com.intangibleobject.securesettings.plugin.extra.SETTING> <com.intangibleobject.securesettings.plugin.extra.SETTING-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.SETTING-type> <com.twofortyfouram.locale.intent.extra.BLURB>GPS Disabled</com.twofortyfouram.locale.intent.extra.BLURB> <com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> <net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> <net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> </Vals> </Bundle> <Str sr="arg1" ve="3">com.intangibleobject.securesettings.plugin</Str> <Str sr="arg2" ve="3">Secure Settings</Str> </Action> <Action sr="act27" ve="3"> <code>11820</code> <Bundle sr="arg0"> <Vals sr="val"> <com.intangibleobject.securesettings.plugin.extra.BLURB>Pattern Lock Enabled</com.intangibleobject.securesettings.plugin.extra.BLURB> <com.intangibleobject.securesettings.plugin.extra.BLURB-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.BLURB-type> <com.intangibleobject.securesettings.plugin.extra.ENABLED>true</com.intangibleobject.securesettings.plugin.extra.ENABLED> <com.intangibleobject.securesettings.plugin.extra.ENABLED-type>java.lang.Boolean</com.intangibleobject.securesettings.plugin.extra.ENABLED-type> <com.intangibleobject.securesettings.plugin.extra.SETTING>lock_pattern_autolock</com.intangibleobject.securesettings.plugin.extra.SETTING> <com.intangibleobject.securesettings.plugin.extra.SETTING-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.SETTING-type> <com.twofortyfouram.locale.intent.extra.BLURB>Pattern Lock Enabled</com.twofortyfouram.locale.intent.extra.BLURB> <com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> <net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> <net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> </Vals> </Bundle> <Str sr="arg1" ve="3">com.intangibleobject.securesettings.plugin</Str> <Str sr="arg2" ve="3">Secure Settings</Str> </Action> <Action sr="act28" ve="3"> <code>11820</code> <Bundle sr="arg0"> <Vals sr="val"> <com.intangibleobject.securesettings.plugin.extra.BLURB>Keyguard Enabled</com.intangibleobject.securesettings.plugin.extra.BLURB> <com.intangibleobject.securesettings.plugin.extra.BLURB-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.BLURB-type> <com.intangibleobject.securesettings.plugin.extra.ENABLED>true</com.intangibleobject.securesettings.plugin.extra.ENABLED> <com.intangibleobject.securesettings.plugin.extra.ENABLED-type>java.lang.Boolean</com.intangibleobject.securesettings.plugin.extra.ENABLED-type> <com.intangibleobject.securesettings.plugin.extra.SETTING>keyguard</com.intangibleobject.securesettings.plugin.extra.SETTING> <com.intangibleobject.securesettings.plugin.extra.SETTING-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.SETTING-type> <com.twofortyfouram.locale.intent.extra.BLURB>Keyguard Enabled</com.twofortyfouram.locale.intent.extra.BLURB> <com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> <net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> <net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> </Vals> </Bundle> <Str sr="arg1" ve="3">com.intangibleobject.securesettings.plugin</Str> <Str sr="arg2" ve="3">Secure Settings</Str> </Action> <Action sr="act29" ve="3"> <code>38</code> </Action> <Action sr="act3" ve="3"> <code>523</code> <Str sr="arg0" ve="3">WhatsApp location request...</Str> <Str sr="arg1" ve="3">Sending location to Some One...</Str> <Img sr="arg2" ve="2"> <icn>17301571</icn> </Img> <Int sr="arg3" val="0"/> <Int sr="arg4" val="1"/> <Int sr="arg5" val="3"/> </Action> <Action sr="act30" ve="3"> <code>38</code> </Action> <Action sr="act4" ve="3"> <code>11820</code> <Bundle sr="arg0"> <Vals sr="val"> <com.intangibleobject.securesettings.plugin.extra.BLURB>Pattern Lock Disabled</com.intangibleobject.securesettings.plugin.extra.BLURB> <com.intangibleobject.securesettings.plugin.extra.BLURB-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.BLURB-type> <com.intangibleobject.securesettings.plugin.extra.ENABLED>false</com.intangibleobject.securesettings.plugin.extra.ENABLED> <com.intangibleobject.securesettings.plugin.extra.ENABLED-type>java.lang.Boolean</com.intangibleobject.securesettings.plugin.extra.ENABLED-type> <com.intangibleobject.securesettings.plugin.extra.SETTING>lock_pattern_autolock</com.intangibleobject.securesettings.plugin.extra.SETTING> <com.intangibleobject.securesettings.plugin.extra.SETTING-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.SETTING-type> <com.twofortyfouram.locale.intent.extra.BLURB>Pattern Lock Disabled</com.twofortyfouram.locale.intent.extra.BLURB> <com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> <net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> <net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> </Vals> </Bundle> <Str sr="arg1" ve="3">com.intangibleobject.securesettings.plugin</Str> <Str sr="arg2" ve="3">Secure Settings</Str> </Action> <Action sr="act5" ve="3"> <code>11820</code> <Bundle sr="arg0"> <Vals sr="val"> <com.intangibleobject.securesettings.plugin.extra.BLURB>Keyguard Disabled</com.intangibleobject.securesettings.plugin.extra.BLURB> <com.intangibleobject.securesettings.plugin.extra.BLURB-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.BLURB-type> <com.intangibleobject.securesettings.plugin.extra.ENABLED>false</com.intangibleobject.securesettings.plugin.extra.ENABLED> <com.intangibleobject.securesettings.plugin.extra.ENABLED-type>java.lang.Boolean</com.intangibleobject.securesettings.plugin.extra.ENABLED-type> <com.intangibleobject.securesettings.plugin.extra.SETTING>keyguard</com.intangibleobject.securesettings.plugin.extra.SETTING> <com.intangibleobject.securesettings.plugin.extra.SETTING-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.SETTING-type> <com.twofortyfouram.locale.intent.extra.BLURB>Keyguard Disabled</com.twofortyfouram.locale.intent.extra.BLURB> <com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> <net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> <net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> </Vals> </Bundle> <Str sr="arg1" ve="3">com.intangibleobject.securesettings.plugin</Str> <Str sr="arg2" ve="3">Secure Settings</Str> </Action> <Action sr="act6" ve="3"> <code>11820</code> <Bundle sr="arg0"> <Vals sr="val"> <com.intangibleobject.securesettings.plugin.extra.BLURB>GPS Enabled</com.intangibleobject.securesettings.plugin.extra.BLURB> <com.intangibleobject.securesettings.plugin.extra.BLURB-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.BLURB-type> <com.intangibleobject.securesettings.plugin.extra.ENABLED>true</com.intangibleobject.securesettings.plugin.extra.ENABLED> <com.intangibleobject.securesettings.plugin.extra.ENABLED-type>java.lang.Boolean</com.intangibleobject.securesettings.plugin.extra.ENABLED-type> <com.intangibleobject.securesettings.plugin.extra.SETTING>gps</com.intangibleobject.securesettings.plugin.extra.SETTING> <com.intangibleobject.securesettings.plugin.extra.SETTING-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.SETTING-type> <com.twofortyfouram.locale.intent.extra.BLURB>GPS Enabled</com.twofortyfouram.locale.intent.extra.BLURB> <com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> <net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> <net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> </Vals> </Bundle> <Str sr="arg1" ve="3">com.intangibleobject.securesettings.plugin</Str> <Str sr="arg2" ve="3">Secure Settings</Str> </Action> <Action sr="act7" ve="3"> <code>8263</code> <Bundle sr="arg0"> <Vals sr="val"> <com.twofortyfouram.locale.intent.extra.BLURB>WhatsApp: Some One</com.twofortyfouram.locale.intent.extra.BLURB> <com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> <intent>#Intent;launchFlags=0x14000000;component=com.whatsapp/.Conversation;S.jid=491111111111%40s.whatsapp.net;S.displayname=Some%20One;end</intent> <intent-type>java.lang.String</intent-type> <net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> <net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> </Vals> </Bundle> <Str sr="arg1" ve="3">com.joaomgcd.autoshortcut</Str> <Str sr="arg2" ve="3">AutoShortcut</Str> </Action> <Action sr="act8" ve="3"> <code>902</code> <Int sr="arg0" val="2"/> <Int sr="arg1" val="30"/> <Int sr="arg2" val="0"/> <Int sr="arg3" val="0"/> </Action> <Action sr="act9" ve="3"> <code>11820</code> <Bundle sr="arg0"> <Vals sr="val"> <com.intangibleobject.securesettings.plugin.extra.BLURB>Screen Dim 5 Seconds</com.intangibleobject.securesettings.plugin.extra.BLURB> <com.intangibleobject.securesettings.plugin.extra.BLURB-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.BLURB-type> <com.intangibleobject.securesettings.plugin.extra.SETTING>wake_device</com.intangibleobject.securesettings.plugin.extra.SETTING> <com.intangibleobject.securesettings.plugin.extra.SETTING-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.SETTING-type> <com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_DURATION>5000</com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_DURATION> <com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_DURATION-type>java.lang.Long</com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_DURATION-type> <com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_TYPE>dim</com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_TYPE> <com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_TYPE-type>java.lang.String</com.intangibleobject.securesettings.plugin.extra.WAKE_LOCK_TYPE-type> <com.twofortyfouram.locale.intent.extra.BLURB>Screen Dim 5 Seconds</com.twofortyfouram.locale.intent.extra.BLURB> <com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type> <net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled> <net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type> </Vals> </Bundle> <Str sr="arg1" ve="3">com.intangibleobject.securesettings.plugin</Str> <Str sr="arg2" ve="3">Secure Settings</Str> </Action> </Task> </TaskerData>
Download this Task from here: http://db.tt/9vRmbhyb
That’s it in the above small example – you can read/write messages from/to WhatsApp app. I am using n7000-cm9.1-cwr6. Oh yea, and if you are having the Talkback auto enabled for Chrome browser, you need to turn Off the Web scripts to run.
Tasker is amazing, I have automated a lot of tasks using this tool. I will share a few none generic ones with you in my coming post here.
WhatsApp & Tasker for Android – Read & Write messages
标签:
原文地址:http://www.cnblogs.com/shangdawei/p/4514947.html