2013-03-01 7 views
13

Ich habe eine USB-Host-Modus-Anwendung, die perfekt funktioniert. Ich schließe das Gerät ein, Android öffnet die Erlaube der App APPNAME auf das USB-Gerät zuzugreifen? Erlaubnis Anfrage Fenster, ich überprüfe die Verwenden Sie standardmäßig für dieses USB-Gerät Kontrollkästchen und tippen Sie auf OK, dann kommt meine App und es kommuniziert perfekt mit dem USB-Gerät.USB-Host-Modus - Gerätezugriffsberechtigung gewährt, aber nicht gespeichert

ABER ...

Dann ziehen Sie ich das Gerät und schließen Sie es wieder in. Android erscheint die die App APPNAME Lassen Sie das USB-Gerät zugreifen? Dialog erneut. WTH? Ich habe Android bereits gesagt, dies standardmäßig zu tun, warum fragt es mich dann noch einmal?

Dies passiert sowohl mit Icecream Sandwich 4.0.3 und Jellybean 4.1.

Idealerweise möchte ich, dass sich Android daran erinnert, dass ich die Erlaubnis für dieses bestimmte USB-Gerät erteilt habe, auch nachdem ich das Android-Gerät neu gestartet habe.

Warum erinnert sich Android nicht daran, dass ich die Erlaubnis erteilt habe?

+0

mögliches Duplikat von [USB-Gerät Zugriff Popup-Unterdrückung?] (Http://stackoverflow.com/questions/12388914/usb-device-access-pop-up-supression) – Hasturkun

Antwort

6

Dies ist eine Kopie von USB device access pop-up supression?. Grundsätzlich besteht die Antwort darin, einen Intent-Filter auf USB_DEVICE_ATTACHED zu verwenden und den RequestPermission USB Host Mode API-Aufruf zu vermeiden.

+1

Verwenden Sie den Intent-Filter wie in beschrieben die verknüpfte Frage, nicht RequestPermission. – kbro

+0

Ich habe Absichtsfilter verwendet, aber es fragt nach Erlaubnis – ashokk

3

Ich antwortete dieser here, obwohl ich erfahre, dass Duplikate über andere SE-Sites zulässig sind.

In Antwort auf warum, ist es wie Sie in besagtem Thread angenommen; Denn mit Ihrer Hardware erhalten Sie jedes Mal, wenn Sie eine Verbindung herstellen, unterschiedliche Kennungen, z./dev/bus/usb/001 /,/dev/bus/usb/002/und so weiter.

0

Das Android kann sich einfach nicht an mein Stipendium für mein Gerät erinnern Aber zum Glück habe ich den Grund herausgefunden: Ich habe hex Werte in der device_filter.xml verwendet. Nachdem ich es in Dezimalwerte geändert habe, funktioniert alles gut. Mein Android kann sich dann an meine Erlaubnis erinnern.