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平台有非常多的流量监控软件,但最准确的流量数据还是掌握在运营商手里.有些朋友可能像我一样时不时地发短信查询流量信息, ...
随机推荐
- 题解 UVA10048 【Audiophobia】
这是一道很神奇的题 什么都不卡,就卡c++11(所以评测时要换成c++). 怎么说呐,其实就是跑一个弗洛依德,求图上两点间最大权值最小的路径,输出最大权值最小. P.S.本题n很小,直接floyd变形 ...
- Description Resource Path Location Type The superclass "javax.servlet.http.HttpServlet" was not foun
一段时间没亲自建新项目玩乐,今天建立了一Maven project的时候发现了以下异常,Description Resource Path Location Type The superclass & ...
- spring-boot分环境打包为tar包
1.pom配置 <!-- 多环境打包 start --> <profiles> <!-- 开发环境配置 --> <profile> <id> ...
- 利用Metrics+influxdb+grafana构建监控平台
https://blog.csdn.net/fishmai/article/details/51817429
- 【51nod】1742 开心的小Q
题解 我们由于莫比乌斯函数如果有平方数因子就是0,那么我们可以列出这样的式子 \(\sum_{i = 1}^{n} \sum_{d|i} (1 - |\mu(d)|)\) 然后枚举倍数 \(\sum_ ...
- 【BZOJ】4671: 异或图
题解 写完之后开始TTTTTTT--懵逼 这道题我们考虑一个东西叫容斥系数啊>< 这个是什么东西呢 也就是\(\sum_{i = 1}^{m}\binom{m}{i}f_{i} = [m ...
- USACO 5.2 Snail Trails
Snail TrailsAll Ireland Contest Sally Snail likes to stroll on a N x N square grid (1 <n <= 12 ...
- 关于 eclipse启动卡死的问题 解决方法
关于 eclipse启动卡死的问题(eclipse上一次没有正确关闭,导致启动的时候卡死错误解决方法),自己常用的解决方法: 方案一(推荐使用,如果没有这个文件,就使用方案二): 到<works ...
- Java 中的异常处理机制
生活中的异常: 不能够完整而顺利的完成一些工作 根据不同的异常进行相应的处理,而不会就此终端我们的生活 引出: 异常处理: 方式: 1.选择结构(逻辑判断)避免 demo:if逻辑处理异常 im ...
- ActiveMQ (二):JMS
1.前言 由于ActiveMQ是一种完全符合JMS规范的一种通信工具,所以在使用ActiveMQ前认识JMS规范就变的十分必要了. 认识JMS主要从以下方面: a. JMS 模型 b. JMS 对象模 ...