Я пытаюсь использовать Tasker для создания настраиваемых уведомлений с помощью AutoNotification с контекстом события «Пакет обновлен *». Но что мне действительно нужно, так это знать, передается ли при обновлении пакета имя обновленного пакета приложения в переменную? Я уже знаю о намерении Package_Added из этого другого вопроса , но ничего не говорит о намерении Package_Updated.
Вы всегда можете воспользоваться adb для самостоятельной охоты. Например: после успешного обновления приложения, если вы немедленно выполните следующую команду и проследуете за разделом ACTIVITY MANAGER BROADCAST STATE (трансляции активности дампси), вы обнаружите намерение android.intent.action.PACKAGE_REPLACED . Вы также заметите, что данные в этом намерении содержат столь востребованное имя пакета.
adb shell dumpsys activity
Соответствующий демонстрационный вывод:
#0: BroadcastRecord{dec5090 u0 android.intent.action.PACKAGE_REPLACED} act= android.intent.action.PACKAGE_REPLACED dat= package:com.koushikdutta.backup flg=0x4000010 (есть дополнения) дополнительные функции: Bundle[{android.intent.extra.UID=10185, android.intent.extra.REPLACING=true, android.intent.extra.user_handle=0}
Что касается использования информации в Tasker, настройте свой профиль и задачи следующим образом:
Профиль: Событие → Система → Получено намерение
android.intent.action.PACKAGE_REPLACED
package
Задача: (Действия):
Переменные → Переменная Поиск Заменить
%intent_data
package:
Заменить на: оставьте это нетронутым, так как мы хотим удалить совпадение.
Только имя пакета теперь будет доступно для значения переменной %intent_data
(локальной переменной). Используйте его, где хотите.
Чтобы получить метку приложения, вы можете либо использовать встроенную функциональность Tasker, либо использовать aapt
(последнее требует root-доступа)
Приложение → Тестовое приложение:
%intent_data
Сохранить результат в:%label
Метку приложения теперь можно получить из переменной %label
.
Дополнительные сведения об обработке намерений в Tasker см. в разделе Доступ к данным о намерениях.
Домашнее задание : если вы внимательно следите за выводом активности dumpsys, вы заметите, что информацию о том, что приложение было обновлено, можно получить только из android.intent.action.PACKAGE_ADDED .
Связанный: получить новое имя установленного приложения с помощью Tasker