Estoy desarrollando una aplicación que debería agregar su acceso directo a la pantalla de inicio después de la instalación y eliminarla después de que se desinstala la aplicación. La aplicación estará preinstalada en el dispositivo del usuario final, pero aún debería tener una opción para la desinstalación). La tarea parece muy simple, pero me he enfrentado a muchos problemas para implementarla.¿Cómo eliminar el acceso directo de la aplicación desde la pantalla de inicio al desinstalar automáticamente?
Lo que he hecho:
- Añadir acceso directo a la pantalla principal con com.android.launcher.action.INSTALL_SHORTCUT en la primera aplicación de lanzamiento o en el dispositivo tritón reinicio.
- eliminar manualmente el acceso directo usando com.android.launcher.action.UNINSTALL_SHORTCUT.
Lo que no puedo (y casi renunciar a):
- eliminará automáticamente el acceso directo cuando la aplicación se desinstala.
No hay forma de usar Intent.ACTION_PACKAGE_REMOVED porque la aplicación que se desinstala no recibe esta intención. Realicé algunas pruebas y descubrí que el único tipo de acceso directo que se elimina con la aplicación es el acceso directo que se crea desde el menú 'Añadir a la pantalla de inicio => Accesos directos => Aplicaciones => Actividad de la aplicación'. Los accesos directos que se crean programáticamente o que se declaran en AndroidManifest permanecen en la pantalla de inicio después de desinstalar la aplicación.
Casi no hay documentos ni publicaciones en los foros sobre este tema y estoy un poco confundido por qué una operación tan simple que no contradice la política de seguridad de Android no pudo implementarse de manera directa.
¿Hay alguna manera de pedir al sistema operativo que elimine el atajo correspondiente en la desinstalación de la aplicación? ¿Puedo ver el evento de desinstalación de la aplicación antes de que se elimine?
Tenga en cuenta que "preinstalado" no implica necesariamente "firmware". Es posible tener una aplicación instalada como si fuera una aplicación normal, pero sucede que se envía con anticipación. La tableta Android ARCHOS 5 lo hizo con una docena de aplicaciones, por ejemplo. – CommonsWare
De hecho. Estoy trabajando con dispositivos que * tendrán * aplicaciones instaladas en el firmware, así que me aseguré de mencionar la parte del firmware. Pero creo que el problema se mantendrá de todos modos debido a la falta de difusión PACKAGE_REMOVED. –
Aunque su comentario me motivó a agregar una posible solución para las preinstalaciones que no son de firmware. :) –