Cuando conecto una unidad USB a mi tablet Samsung (utilizando el kit de conexión USB), mi Android 4.0.4 inicia automáticamente la aplicación Archive, para ver cuál es el contenido del pen drive. Lo mismo sucede con una aplicación que escribí, Android popup un mensaje para que coincida con el dispositivo conectado con mi aplicación. ¿Es posible evitar este auto-inicio? ¿Cómo? Gracias
Respuesta
¿Demasiados anuncios?¿Por qué hay aplicaciones que se inician cuando la unidad está conectada?
En primer lugar, se necesita algo de información sobre lo que ocurre allí. Muchas cosas en Android están "basadas en eventos". Es decir, cuando "algo" sucede, el sistema emite una "emisión" diciéndolo. Algunos eventos bien conocidos y fáciles de entender son
- arranque completado
- almacenamiento (des)montado (generalmente tarjeta sdcard removida/insertada, o alguna unidad externa)
- batería baja
- la red ha cambiado
Las aplicaciones pueden registrar "oyentes" para eventos de transmisión específicos (intentos), para que se inicien/despierten/informen entonces. De nuevo, algunos ejemplos:
- media-scanner quiere saber cuándo se ha conectado una nueva "entidad" de almacenamiento, para buscar música/fotos/vídeos para insertarlos en su base de datos interna
- el servicio de localización quiere conocer los cambios de red: si hay una nueva red, podría ser interesante determinar la ubicación actual
- varias aplicaciones (demasiadas) quieren iniciarse en el arranque
Así que, obviamente, su aplicación Archive ha registrado un oyente para la emisión de almacenamiento, y de forma similar su aplicación.
¿Cómo deshacerse de eso?
Para su propia aplicación, podría ajustar su código en consecuencia. Pero eso no es tarea para nosotros aquí, pero si es necesario, se puede discutir que en nuestra hermana-sitio stackoverflow.com .
Para todas las demás aplicaciones (lo que sigue es aplicable a otras combinaciones también), necesitará que su dispositivo esté rooteado (los detalles se pueden encontrar en el Enraizamiento etiqueta-wiki ). Luego ve a la playstore y consigue una aplicación como por ejemplo Autorun Manager PRO (sí, para lo siguiente necesitarás el Pro si te decides por esta aplicación. Sin embargo, yo la elegí, ya que resultó ser la mejor en mis pruebas de hace un tiempo):
AutoRun Manager (haga clic en la imagen para ampliarla)
Como puedes ver en la captura de pantalla, Gestor de ejecución automática permite desactivar cada oyente que una aplicación haya registrado por separado. Y sus nombres son (en la mayoría de los casos) bastante descriptivos. Así que use ARM, vaya a su "Modo Avanzado", busque la aplicación Archivo, y compruebe qué oyentes ha registrado. Desactive el que le parezca razonable, y su problema debería estar resuelto.
Puedes cambiarlo cuando quieras. Cada vez que se actualice la aplicación modificada, tendrás que volver a hacerlo. También puede simplemente revertir todos los cambios con dos toques, ya que ARM tiene una función específica de "restauración" para eso.
PD: Como ha etiquetado su pregunta auto-arranque Si no se ha hecho nada, puede pasar el ratón por encima de esa etiqueta y seleccionar el enlace "información". Esto le llevará a la etiqueta wiki donde se puede encontrar la mayor parte de lo que acabo de escribir (y tal vez incluso alguna información adicional) - así que recomiendo leerlo también. Además, tómalo como una pista para el futuro: Muchas de nuestras etiquetas-wikis contienen primeros auxilios. Y en muchos casos eso ya puede ser suficiente para resolver un problema :)