I'm trying to use Tasker to create custom notifications with AutoNotification with the Event Context of "Package Updated *". But what I really need is to know if when a package is updated, does the updated app package name get passed to a variable? I already know about the intent of Package_Added from this other question, but it doesn't say anything about having an intent of Package_Updated.
1 Answers
You can always employ adb at your service to do the hunting on your own. For example: after a successful update of an app if you immediately execute the following command and follow the section ACTIVITY MANAGER BROADCAST STATE (dumpsys activity broadcasts) you would come across the intent android.intent.action.PACKAGE_REPLACED. You would also observe that the data in that intent contains the much sought package name.
adb shell dumpsys activity
Relevant demo output:
#0: BroadcastRecord{dec5090 u0 android.intent.action.PACKAGE_REPLACED} act=android.intent.action.PACKAGE_REPLACED dat=package:com.koushikdutta.backup flg=0x4000010 (has extras) extras: Bundle[{android.intent.extra.UID=10185, android.intent.extra.REPLACING=true, android.intent.extra.user_handle=0}
As for using the information in Tasker, setup your profile and tasks like this:
Profile: Event → System → Intent Received
- Action:
android.intent.action.PACKAGE_REPLACED
- Scheme:
package
- leave the rest untouched
- Action:
Task: (Actions):
Variables → Variable Search Replace
- Variable:
%intent_data
- Search:
package:
- tick One Match Only
- tick Replace Matches
Replace With: leave this untouched since we want to delete the match
The package name alone would now be available to the value of the variable
%intent_data
(a local variable). Use it wherever you want.
- Variable:
In order to get the app label, you can either use Tasker's inbuilt functionality or use
aapt
(latter requires root access)App → Test App:
- Type: Package Name
- Data:
%intent_data
Store Result In:
%label
The app label can now be retrieved from the variable
%label
.
See Accessing Intent Data for more info on intent handling in Tasker.
Homework: if you follow the output of dumpsys activity carefully you would note that the information that the app has been updated can actually be retrieved from android.intent.action.PACKAGE_ADDED alone.