Estos son los aspectos más destacados para lograr la solución:
1. Cada vez que el usuario vaya a Configuración -> Administrar aplicaciones -> Selecciona una aplicación en particular , recibimos una transmisión android.intent.action.QUERY_PACKAGE_RESTART con el nombre del paquete de la aplicación como extras.
2. Después de eso, cuando hacemos clic en el botón Desinstalar (con el instalador del paquete), se abre una actividad llamada – com.android.packageinstaller.UninstallerActivity
- ¿Cómo se cambia el color del texto en la barra de navegación en una aplicación de Android?
- ¿Es posible desarrollar una aplicación de Android como WhatsApp en PHP?
- ¿Cuál es la ética de desarrollar y lanzar mi propia aplicación de Android?
- ¿Vale la pena aprender la programación de Android con Java desde que se introdujo Kotlin?
- ¿Cuál crees que es la aplicación de Android más innovadora creada en India?
El flujo de control será como:
En Configuración de la aplicación, el usuario hace clic en el botón Desinstalar -> Obtenemos el control para mostrar un diálogo / iniciar otra actividad / etc -> Terminamos nuestra tarea previa a la desinstalación -> El usuario vuelve a la pantalla de confirmación de desinstalación -> El usuario confirma y desinstala el aplicación
Método utilizado
Implementaremos un BroadcastReceiver en nuestra aplicación para escuchar la acción ” android.intent.action.QUERY_PACKAGE_RESTART ” y unir el nombre de nuestro paquete dentro del método onReceive (). Si se recibió la transmisión para la selección de nuestro paquete de aplicación deseado, entonces iniciaremos un subproceso en segundo plano que seguirá monitoreando las actividades en ejecución en primer plano utilizando el ActivityManager.
Una vez que encontremos que la actividad en primer plano es ” com.android.packageinstaller.UninstallerActivity “, se confirmará que el usuario desea desinstalar nuestra aplicación. En este punto realizaremos las tareas deseadas (ya sea mostrar un diálogo o iniciar otra actividad superponiendo la ventana de desinstalación, etc.) que se realizarán antes de la desinstalación. Después de realizar nuestra tarea, permitiremos que el usuario continúe confirmando el proceso de desinstalación.
Implementación / Código fuente:
En manifest.xml
agregar permiso:
y receptor de difusión: