1

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.

2

You can always employ 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
  • 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.

    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.

Related: Get new installed app name with Tasker

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.