android app - getbluetoothservice()ohne bluetoothmanagercallback aufgerufen




beispiel automatisch (6)

Ich getBluetoothService() called with no BluetoothManagerCallback als einen Fehler häufig in meiner Android-Anwendung getBluetoothService() called with no BluetoothManagerCallback .

Ich habe keine Ahnung, was diese oder ähnliche Rückrufe von Bluetooth-Managern verursacht. Kann mir jemand eine gute Vorstellung davon geben, was dieses Problem verursachen könnte oder wo ich anfangen soll.


Answers

Dies tritt auch auf, wenn BluetoothServerSocket derzeit [bluetoothServerSocket.accept ()] nicht mit derselben UUID akzeptiert, die Sie verbinden möchten.

Wenn Sie sicher sind, dass Sie den Server-Socket akzeptieren, überprüfen Sie, ob Sie ein zu kurzes Timeout angegeben haben (ich hatte es vorher auf 200 gesetzt, um etwas zu überprüfen, hoppla).


Ich habe diese Nachricht erhalten, nachdem ich BluetoothSocket.connect () direkt nach dem Empfang von BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED mit dem Status BluetoothHeadset.STATE_CONNECTED versucht habe. Die BluetoothSocket.connect () ist ebenfalls fehlgeschlagen. Nach dem Hinzufügen eines Timeouts von 500ms vor dem Versuch, BluetoothSocket.connect () zu versuchen, löste dies mein Problem mit der tatsächlichen Verbindung. Die Nachricht "getBluetoothService () ohne BluetoothManagerCallback aufgerufen" bleibt zwar bestehen, aber alles funktioniert.


Wenn Sie in den Android-Quellcode einlesen, scheint dies eine Warnung zu sein, über die Sie nichts machen können. Der Quellcode zeigt, dass wenn Sie anrufen

BluetoothSocket#connect();

Dann wird es anrufen

BluetoothAdapter.getDefaultAdapter().getBluetoothService(null);

Der Schlüssel hier ist der Null-Parameter, den er in der obigen Zeile übergibt. Aus diesem Grund wird es keinen Rückruf geben und die BluetoothSocket-Klasse wird eine Warnung ausgeben.

Da es nur eine Warnung ist, glaube ich nicht, dass Sie etwas dagegen tun müssen.

https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/bluetooth/BluetoothSocket.java Zeile 306 https://android.googlesource.com/platform/frameworks/base/+ /master/core/java/android/bluetooth/BluetoothAdapter.java Zeile 1610


Es scheint, dass dies aufgerufen wird, wenn mehrere Bluetooth-Sockets gleichzeitig geöffnet werden. Ich habe das behoben, indem ich sichergestellt habe, dass ich immer nur eine Steckdose auf einmal geöffnet habe.


getBluetoothService () wird ohne BluetoothManagerCallback aufgerufen

Ich habe auch das gleiche Problem. Aber ich habe gelöst. In meinem Fall ist bereits ein Sockel im offenen Zustand und ich versuche einen anderen Sockel zu öffnen. Also versuchen wir, mehr als eine Steckdose gleichzeitig als Client zu öffnen. Ich fühlte, dass dies der Grund ist


Wenn ich diesen Fehler bekomme, adb ich den adb Server neu, indem ich den adb eintippe:

adb kill-server

adb start-server

EDIT: Mit einigen nie Versionen der Plattform-Tools können Sie dies aus der DDMS Perspective in der Devices Tab (in der Nähe der Capture-Taste), klicken Sie auf Reset adb .

EDIT2: Außerdem habe ich herausgefunden, dass es vorzuziehen ist, den USB port an der Rückseite Ihres PCs zu verwenden, da die meisten vorderen USB ports wenig Strom apks und beim Hochladen von apks auf Ihre Geräte wirklich langsamer sind.





android bluetooth