1 votos

¿Puedo obtener un nombre de paquete de la aplicación como una Variable de Tasker al recibir un evento de actualización del paquete?

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.

2voto

Firelord Puntos 161

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
  • 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.

    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

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X