¿Puedo obtener un nombre de paquete de aplicación como Variable de Tasker en un evento de actualización de paquete?

Estoy tratando de usar Tasker para crear notificaciones personalizadas con AutoNotification con el Contexto de evento de "Paquete actualizado *". Pero lo que realmente necesito es saber si cuando se actualiza un paquete, ¿el nombre del paquete de la aplicación actualizado se pasa a una variable? Ya conozco la intención de Package_Added de esta otra pregunta , pero no dice nada sobre tener una intención de Package_Updated.

Respuestas (1)

Siempre puede emplear a su servicio para hacer la caza por su cuenta. Por ejemplo: después de una actualización exitosa de una aplicación, si ejecuta inmediatamente el siguiente comando y sigue la sección ACTIVITY MANAGER BROADCAST STATE (transmisiones de actividad de dumpsys), se encontrará con la intención android.intent.action.PACKAGE_REPLACED . También observará que los datos en esa intención contienen el nombre del paquete tan buscado.

adb shell dumpsys activity 

Salida de demostración relevante:

N.º 0: Registro de difusión{dec5090 u0 android.intent.action.PACKAGE_REPLACED}
    act= android.intent.action.PACKAGE_REPLACED dat= paquete:com.koushikdutta.backup flg=0x4000010 (tiene extras)
    extras: Paquete[{android.intent.extra.UID=10185, android.intent.extra.REPLACING=true, android.intent.extra.user_handle=0}

En cuanto al uso de la información en Tasker, configure su perfil y tareas como esta:

  • Perfil: Evento → Sistema → Intención recibida

    • Acción:android.intent.action.PACKAGE_REPLACED
    • Esquema:package
    • deja el resto intacto
  • Tarea: (Acciones):

    • Variables → Búsqueda de variables Reemplazar

      • Variable:%intent_data
      • Buscar:package:
      • marque una sola coincidencia
      • marque Reemplazar coincidencias
      • Reemplazar con: deja esto intacto ya que queremos eliminar la coincidencia

        El nombre del paquete solo ahora estaría disponible para el valor de la variable %intent_data(una variable local). Úsalo donde quieras.

    Para obtener la etiqueta de la aplicación, puede usar la funcionalidad incorporada de Tasker o usar aapt(este último requiere acceso de root)

    • Aplicación → Aplicación de prueba:

      • Tipo: Nombre del paquete
      • Datos:%intent_data
      • Guardar resultado en:%label

        La etiqueta de la aplicación ahora se puede recuperar de la variable %label.

Consulte Acceder a los datos de intenciones para obtener más información sobre el manejo de intenciones en Tasker.

Tarea : si sigue atentamente el resultado de la actividad de dumpsys, notará que la información de que la aplicación se ha actualizado en realidad se puede recuperar solo de android.intent.action.PACKAGE_ADDED .

Relacionado: Obtenga el nuevo nombre de la aplicación instalada con Tasker