Estoy intentando usar Tasker para crear notificaciones personalizadas con AutoNotification con el Contexto de Evento de "Paquete Actualizado *". Pero lo que realmente necesito saber es si cuando se actualiza un paquete, ¿se pasa el nombre del paquete de la aplicación actualizada a una variable? Ya sé sobre el intent de Paquete_Añadido de esta otra pregunta, pero no dice nada sobre tener un intent de Paquete_Actualizado.
Respuesta
¿Demasiados anuncios?Puedes utilizar siempre adb a tu servicio para hacer la búsqueda por ti mismo. Por ejemplo: después de una actualización exitosa de una aplicación, si ejecutas inmediatamente el siguiente comando y sigues la sección ESTADO DE EMISIÓN DEL GESTOR DE ACTIVIDADES (dumpsys activity broadcasts) te encontrarías con el intento _android.intent.action.PACKAGE_REPLACED_. También observarás que los datos en ese intento contienen el nombre del paquete tan buscado.
adb shell dumpsys activity
Salida demo relevante:
#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}
En cuanto a utilizar la información en Tasker, configura tu perfil y tareas de la siguiente manera:
-
Perfil: Evento → Sistema → Intent recibido
- Acción:
android.intent.action.PACKAGE_REPLACED
- Esquema:
package
- deja el resto sin modificar
- Acción:
-
Tarea: (Acciones):
-
Variables → Búsqueda y reemplazo de variable
- Variable:
%intent_data
- Búsqueda:
package:
- Marcar Solo una coincidencia
- Marcar Reemplazar coincidencias
- Reemplazar con: deja esto sin modificar ya que queremos eliminar la coincidencia La nombre del paquete por sí solo ahora estaría disponible en el valor de la variable
%intent_data
(una variable local). Úsalo donde quieras.
- Variable:
Para obtener la etiqueta de la aplicación, puedes usar la funcionalidad integrada de Tasker o utilizar
aapt
(esto último requiere acceso root)-
Aplicación → Probar aplicación:
- Tipo: Nombre del paquete
- Datos:
%intent_data
-
Almacenar resultado en:
%label
La etiqueta de la aplicación ahora se puede recuperar de la variable
%label
.
-
Consulta Acceso a datos de intent para obtener más información sobre el manejo de intentos en Tasker.
Tarea: si sigues cuidadosamente la salida de dumpsys activity notarás que la información de que la aplicación ha sido actualizada en realidad se puede obtener solo de android.intent.action.PACKAGE_ADDED.
Relacionado: Obtener nombre de aplicación recién instalada con Tasker