Ich kratze mich am Kopf und versuche, einen Weg zu finden, Bluetooth-Kopfhörer zu erkennen und Ereignisse für Android 2.1 zu verbinden und zu trennen. Ich sehe in API Level 11, dass es einige explizite gibt, aber wie mache ich das in API Level 7? Ich möchte nur wissen, wann der Benutzer ein Headset oder ein Autoradio, das Audio abspielen kann, verbindet oder trennt, damit ich die Sounds, die ich gerade spiele, anhalten kann.
Es gibt keine öffentlichen APIs, Diese Antwort könnte helfen, wenn der Autor private APIs verwendet hat mit Reflexionen.
Der Autor hat auch einen Kommentar geschrieben, wie er es zum Laufen gebracht hat.
Dies scheint eine gute Option zu sein, um Bluetooth-Verbindungen zu erkennen / zu trennen.
Wenn das nicht funktioniert hat, ist eine andere gute Option, einen Timer in einem Dienst zu setzen, der AudioManager.isBluetoothA2dpOn()
aufruft, um zu prüfen, ob das Bluetooth verbunden oder getrennt ist.
Nicht sicher, ob das in 2.1 funktioniert, aber es funktioniert in 2.2 und 2.3.
Es werden Änderungen am Bluetooth-Headset-Verbindungsstatus aufgezeichnet:
Deklarieren Sie den folgenden Intent-Filter
%Vor%und in Ihrem Empfänger in onReceive prüfen nach:
%Vor%und speichern Sie das int als eine statische Variable. Greifen Sie immer darauf zu, wenn Sie wissen möchten, ob BT Audio angeschlossen (1) / getrennt (0) ist. Nicht schön, aber erledigt den Job.
Überprüfen Sie auch: Ссылка
Sie müssen eine BroadcastReceiver
für android.bluetooth.headset.action.STATE_CHANGED
Aktion einrichten. Die zusätzliche android.bluetooth.headset.extra.STATE
der Absicht enthält den aktuellen Status (getrennt, verbunden, verbunden). Weitere Informationen zum Android-Quellcode