Tengo una aplicación que corre en una tablet Android sin nombre que corre ICS 4.0.3 que controla un dispositivo USB a través de la interfaz de modo de anfitrión USB. El archivo Android.hardware.usb.host.xml está presente en /system/etc/permissions y todo funciona de maravilla. Excepto...
Cuando ejecuto la aplicación por primera vez después de un reinicio y luego conecto el dispositivo USB, aparece una ventana emergente que dice: "¿Permitir que la aplicación APPNAME acceda al dispositivo USB? [] Usar por defecto para este dispositivo USB. Cancelar OK" y tengo que pulsar OK antes de que pueda empezar a usar el dispositivo.
Necesito apagar la confirmación del usuario para que la aplicación pueda usar el dispositivo de inmediato. ¿Cómo hago esto? Tengo algunas sugerencias sobre el uso de un generador de pulsaciones de teclas para simular que el usuario pulsa el botón de la pantalla, pero prefiero evitar ese tipo de enfoque y configurar las cosas de manera que la solicitud de confirmación simplemente no se produzca.
Probablemente no pueda hacer que el proveedor me construya un kernel personalizado, pero debería poder obtener la clave de firma del firmware de ellos para poder firmar mi aplicación como una aplicación de sistema, si eso ayuda.
Un problema asociado: marcar la casilla "Usar por defecto para este dispositivo USB" no parece ayudar - si desenchufo y vuelvo a enchufar el dispositivo entonces obtengo el mensaje de confirmación de nuevo. He notado en esta situación que el número de dispositivo en /dev/bus/usb/001/ cambia cada vez que lo desconecto y lo vuelvo a conectar (001, 002, 003 etc.) lo que quizás explica este problema en particular.