Bonjour,
Je rencontre un problème avec une application Android utilisant l'USB HOST (je sais que c'est un peu hors des sentiers battus).
Sur le fonctionnement global tout est OK; Il s'agit d'un service lancé au boot de l'appareil, et ce service communique sans problème avec le Device USB qui est une carte ARM reliée au monde physique.
Là où se situe le problème, c'est qu'à chaque démarrage et également à chaque déconnexion/reconnexion du device USB, je reçois une notification (de mon service) qui dit "Autoriser l'application xxx à accéder au périphérique USB?" avec une case à cocher "Utiliser par défaut pour ce périphérique USB".
J'ai beau cocher la case, rien n'y fait, à chaque redémarrage de l'appareil HOST Android ou à chaque connexion ou redémarrage de l'ARM Device, l'utilisateur est obligé de reconfirmer l'autorisation.
Or, la doc dit ceci: "Note: If your application uses an intent filter to discover USB devices as they're connected, it automatically receives permission if the user allows your application to handle the intent. If not, you must request permission explicitly in your application before connecting to the device."
J'ai utilisé les intent-filter et les meta-data pour déclarer mon périphérique USB, mais rien ne change, que je mette des valeurs farfelues ou correspondant au device réel: Je dois chaque fois confirmer. En fait je ne vois même pas à quoi servent ces meta-data vu que quoi que j'y mette ça ne change strictement rien.
Or, le souci est qu'il s'agit d'une application qui doit rester fonctionnelle en continu sur secteur. Et en cas de panne secteur l'application doit redémarrer toute seule automatiquement. Or, ici, ça redémarre sauf que ça reste bloqué évidemment sur la requête d'autorisation. Et cette requête est déclenchée parce que le périphérique n'est pas détecté comme disposant de l'autorisation. Avec en plus le problème que le périphérique Android n'a pas d'écran et donc ça oblige à connecter un moniteur pour confirmer.
Quelqu'un peut-il m'aider à localiser ce problème?
C'est un projet open-source, je peux donc fournir n'importe quelle partie du code.
Je vous remercie d'avance,
Claude
Partager