Kürzlich habe ich versucht, die Absicht android.hardware.usb.action.USB_DEVICE_ATTACHED mit einem Broadcast-Empfänger zu erhalten, wie alle Beispiele und Beispiele, die ich gesehen habe.USB_DEVICE_ATTACHED startet nurAktivität von Galaxy S3 ICS
Ich habe einen Empfänger im Manifest deklariert;
<receiver android:name=".UsbDeviceReceiver">
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
<action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter"/>
Ich habe auch in den Aktivitätscode ähnlich gemacht - onStart und OnStop registrieren/den Empfänger abmelden.
IntentFilter filter = new IntentFilter();
filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
registerReceiver(mUsbReceiver, filter);
Allerdings finde ich, dass die Absicht gerade gefangen wird. Logcat beobachten Ich kann sehen, dass das Anhängen eines USB-Geräts nach Aktivitäten sucht, die gestartet werden sollen, während das Trennen der Verbindung die Entfernungsabsicht ausstrahlt. Gemäß den oben genannten Stichproben sollte dies nicht der Fall sein.
Fehle ich etwas drastisch in Bezug auf Metadaten? Ich habe überhaupt keine Probleme mit android.hardware.usb.action.USB_DEVICE_DETACHED. Vielleicht ist das ein Fehler mit der Android-Version, die auf der Galaxy S3 installiert ist? Vielleicht ist dies ein ICS-Feature.
Alle relevanten Informationen sind willkommen!
Der Code (siehe zum Beispiel) https://github.com/android/platform_frameworks_base/blob/master/services/java/com/android/server/usb/UsbSettingsManager.java tut Senden Sie keine Sendung auf dem Gerät Anhang, es startet nur die Aktivität speziell für dieses Gerät registriert registriert. Jemand hat einen Patch auf Gerrit gesendet, um die Sendung zu senden, aber es scheint abgelehnt worden zu sein, weil die Design-Philosophie nicht stimmt. –
Hallo Chris, danke für die knappe Antwort. Es ist eine Erleichterung, dass dies nicht nur ein Problem mit meinem Gerät ist. Gibt es die Patch-Einreichung noch, so dass ich die Gründe für dieses Verhalten genauer lesen konnte? Meine Problemumgehung wird im Moment eine unsichtbare Aktivität und meine eigene Sendung beinhalten. Es fühlt sich an wie ein Hack. Ich werde den Code posten, wenn ich fertig bin. – Gusdor