WhatsApp & Tasker for Android – Read & Write messages
WhatsApp & Tasker for Android – Read & Write messages
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. ()
// 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):
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: Permanent:On Priority: ]
// 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): 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 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): 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: ] // Focus the Send button
A13: Dpad [ Button:Press Repeat Times: ] // And press it.
A14: Dpad [ Button:Left Repeat Times: ] // Get back to the typing box. A15: Run Shell [ Command:input text LOCATION_ACCURACY:%LOCACC Timeout (Seconds): Use Root:On Store Result In: ]
A16: Dpad [ Button:Right Repeat Times: ]
A17: Dpad [ Button:Press Repeat Times: ]
A18: Dpad [ Button:Left Repeat Times: ] A19: Run Shell [ Command:input text BATTERY_LEVEL:%BATT% Timeout (Seconds): Use Root:On Store Result In: ]
// I am adding Battery level in my case as well. A20: Dpad [ Button:Right Repeat Times: ]
A21: Dpad [ Button:Press Repeat Times: ] 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: Permanent:Off Priority: ]
// 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的更多相关文章
- How to read out WhatsApp messages with Tasker and react on their content in real time
http://technologyworkroom.blogspot.sg/2013/05/tasker-how-to-read-out-whatsapp.html Tasker can read o ...
- Send a WhatsApp Message programatically -- Tasker WhatsTasker
Here is My code snippet: Uri mUri = Uri.parse("smsto:+9876543210"); Intent mIntent = new I ...
- Solution for sending Whatsapp via sqlite "INSERT INTO"
I use something similar but thought I'd mention this 'bug' that can happen:when you INSERT '%wa_mess ...
- Ultimate Guide to WhatsApp for Business 2019
By Iaroslav Kudritskiy (Source: https://rocketbots.io/blog/the-ultimate-guide-to-whatsapp-business-a ...
- Content portal for Pocketables Tasker articles
http://www.pocketables.com/2013/03/overview-of-pocketables-tasker-articles.html I write a lot about ...
- Qt for Android 启动短暂的黑屏或白屏问题如何解决?
解决方法一: 使用透明主题 点击项目 -> 在 构建设置 里面找到 Build Android APK 栏目,点击 create templates 创建一个 AndroidManifest.x ...
- 所有selenium相关的库
通过爬虫 获取 官方文档库 如果想获取 相应的库 修改对应配置即可 代码如下 from urllib.parse import urljoin import requests from lxml im ...
- Dig out WeChat deleted chat messages on Android Phone
As we know that WeChat will wipe deleted chat messages. That's why forensic guys could not dig out ...
- Android Tasker应用之自动查询并显示话费流量套餐信息
Android Tasker应用之自动查询并显示话费流量套餐信息 虽然Android平台有非常多的流量监控软件,但最准确的流量数据还是掌握在运营商手里.有些朋友可能像我一样时不时地发短信查询流量信息, ...
随机推荐
- python网络编程-进程锁
一:进程锁的作用 进程锁是防止多进程并发执行在屏幕打印的时候,其他进程也输出数据到屏幕,而出现混乱现象. 比如:进程池中很多进程会向同一个日志文件中打印日志 二:代码 # -*- coding:utf ...
- ExtJs对js基本语法扩展支持
ExtJs对js基本语法扩展支持 本篇主要介绍一下ExtJs对JS基本语法的扩展支持,包括动态加载.类的封装等. 一.动态引用加载 ExtJs有庞大的类型库,很多类可能在当前的页面根本不会用到,我们可 ...
- SQL Server数据库存在判断语句及系统表简介
Transact-SQL Exists Sentences--判断数据库是否存在IF EXISTS(SELECT * FROM master.sysdatabases WHERE name=N'库名' ...
- Vue-Socket.io
github地址:https://github.com/MetinSeylan/Vue-Socket.io 安装: npm install vue-socket.io -S 注册: import Vu ...
- 【洛谷】P4643 【模板】动态dp
题解 在冬令营上听到冬眠的东西,现在都是板子了猫锟真的是好毒瘤啊(雾) (立个flag,我去thusc之前要把WC2018T1乱搞过去= =) 好的,我们可以参考猫锟的动态动态dp的课件,然后你发现你 ...
- Django实战(8):对比RoR与Django的输入校验机制
rails有一个”简洁.完美的验证机制,无比强大的表达式和验证框架“.在<Agile Web Development with Rails 4th>一书的7.1节向我们展示了如何验证Pro ...
- SQLite数据库、ListView控件的使用
android下数据库的创建(重点) 在Android平台上,集成了一个轻量级嵌入式关系型数据库—SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本 ...
- 操作数据----DML语句
insert语句基本语法 insert into table(column) values(values); insert into dept (deptno,dname,loc) ,'develop ...
- Keras/tensorflow出现‘Loaded runtime CuDNN library: 7.0.5 but source was compiled with: 7.1.14’错误的解决办法
从tensorflow1.10 升级到1.12版本后,对依赖的CuDNN不兼容产生的问题.鉴于一直使用的是Keras,未使用新版本tensorflow的功能,故果断回退到旧版本. 方法为:pip3 i ...
- iOS 9应用开发教程之显示编辑文本标签文本框
iOS 9应用开发教程之显示编辑文本标签文本框 ios9显示.编辑文本 在iOS,经常会看到一些文本的显示.文字就是这些不会说话的设备的嘴巴.通过这些文字,可以很清楚的指定这些设备要表达的信息.本节将 ...
