web-dev-qa-db-fra.com

getbluetoothservice () appelé sans aucun bluetoothmanagercallback

Je reçois fréquemment getBluetoothService() called with no BluetoothManagerCallback comme erreur dans mon application Android.

Je n'ai aucune idée de ce qui cause ceci ou quoi que ce soit à propos des rappels du gestionnaire Bluetooth. Quelqu'un peut-il me donner une bonne idée de ce qui pourrait causer ce problème ou par où commencer à chercher.

34
dacopenhagen

En lisant dans le code source Android, cela semble être un avertissement contre lequel vous ne pouvez rien faire. Le code source montre que si vous appelez

BluetoothSocket#connect();

Ensuite, il appellera

BluetoothAdapter.getDefaultAdapter().getBluetoothService(null);

La clé ici est le paramètre null qu'il passe dans la ligne ci-dessus. Pour cette raison, il n'y aura pas de rappel, et la classe BluetoothSocket émettra un avertissement.

Puisqu'il ne s'agit que d'un avertissement, je ne pense pas que vous ayez à faire quoi que ce soit.

https://Android.googlesource.com/platform/frameworks/base/+/master/core/Java/Android/bluetooth/BluetoothSocket.Java line 306 https: //Android.googlesource com/plate-forme/cadres/base/+/maître/noyau/Java/Android/Bluetooth/BluetoothAdapter.Java ligne 1610

34
AndreasPK

Il semble que cela soit appelé lorsque plusieurs sockets Bluetooth sont ouverts en même temps. Je corrigeai cela en m'assurant que je n'ouvrais qu'une prise à la fois.

6
dacopenhagen

Je reçois cette erreur même après la fermeture de ma candidature et je ne peux plus m'en débarrasser. Après cela, je dois redémarrer mon téléphone car je ne peux même plus activer Bluetooth.

Pour le moment (avec le même code), cela ne se produit que sur l'un de mes téléphones. Peut-être que c'est un problème de pilotes.

2
Vittorio Cozzolino

J'ai reçu ce message après avoir essayé BluetoothSocket.connect () directement après avoir reçu le BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED avec l'état BluetoothHeadset.STATE_CONNECTED. BluetoothSocket.connect () a également échoué. Après avoir ajouté un délai d'expiration de 500 ms avant d'essayer BluetoothSocket.connect (), cela a résolu le problème de la connexion. Le message "getBluetoothService () appelé sans BluetoothManagerCallback" reste toujours mais tout fonctionne.

0
Pepijn