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.

1 Answers1

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

Firelord
  • 25,084
  • 20
  • 124
  • 286