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. (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.

时间: 2024-08-01 22:47:28

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 out incoming or stored WhatsApp Messages, I used Tasker to do the following things on WhatsApp: Display the incoming messages in iOS style, no need to

Solution for sending Whatsapp via sqlite &quot;INSERT INTO&quot;

I use something similar but thought I'd mention this 'bug' that can happen:when you INSERT '%wa_message' into 'data', bear in mind your typed message will replace %wa_message.if that typed message contains an apostrophe, your message won't send.why?t

Qt for Android 启动短暂的黑屏或白屏问题如何解决?

解决方法一: 使用透明主题 点击项目 -> 在 构建设置 里面找到 Build Android APK 栏目,点击 create templates 创建一个 AndroidManifest.xml <?xml version="1.0"?> <manifest package="org.qtproject.example" xmlns:android="http://schemas.android.com/apk/res/andr

关于QT for Android生成的AndroidManifest.xml学习说明

<?xml version="1.0"?> <manifest package="org.qtproject.example" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0" android:versionCode="1" android:installLocation

iphone 6 picture recovery is a mac and windows yet still efficient

iphone 5 recover photos can recover Nine types of txt content  WhatsApp,Calendar,Reminder,App Document,Contacts,Messages,Notes,Safari bookmark,Call history  and 10 sorts of multimedia items  WhatsApp Attachments,Camera Roll,App Videos,App Audio,Messa

强烈推荐:Android史上最强大的自定义任务软件Tasker

强烈推荐:Android史上最强大的自定义任务软件Taskerhttp://bbs.mumayi.com/thread-28387-1-1.html(出处: 木蚂蚁手机乐园) Android上的Tasker绝对称得上是Android系统的神器之一,与Auto Memory Manager不同,Tasker不是加速型的软件,而是系统增强型的软件,由于有众多系统状态可控制,故使得Tasker一跃成为Android系统中最闪亮的明星.但Tasker也无疑是最难使用的软件,由于可以控制的地方太多,反而让

Android Tasker应用之自动查询并显示话费流量套餐信息

Android Tasker应用之自动查询并显示话费流量套餐信息 虽然Android平台有非常多的流量监控软件,但最准确的流量数据还是掌握在运营商手里.有些朋友可能像我一样时不时地发短信查询流量信息,这个操作在智能手机上显得太不智能了,本文将用Tasker让这个操作变得智能化. 1.功能需求 每天早上闹钟响时,Tasker自动发送短信给运营商查询套餐信息.收到短信后Tasker自动分析短信内容,并将话费余额,流量信息等显示在桌面上. 用户可以手动随时给运营商发短信查询,Tasker自动判断为套餐

Tasker, Android系统增强神器, 变量汇总

http://tasker.dinglisch.net/userguide_summary.html#variables.html http://tasker.dinglisch.net/userguide/zh/variables.html 变量 变量是一种会随着时间发生改变的已命名的值,例如电池的电量级别,或一天内的具体时间. 当Tasker在文字中遇到变量名后,即可将该名称替换为相关变量当前的值,然后才执行对应的操作. 变量的主要用途 动态绑定:使用在创建任务时尚且未知的数据通过操作达到某

How to extract WeChat chat messages from a smartphone running Android 7.x or above

A friend of mine she was frustarted in extracting WeChat chat messages from suspect's smartphone running Android 7.x. The situation is that no pattern lock/PIN/Password and USB debugging was enabled successfully. She tried every effort but in vain. N