web-dev-qa-db-ja.com

getbluetoothservice()はbluetoothmanagercallbackなしで呼び出されます

AndroidアプリケーションでgetBluetoothService() called with no BluetoothManagerCallbackをエラーとして頻繁に取得しています。

ブルートゥースマネージャーのコールバックについて、これが何を引き起こしているのか、私は何も考えていません。誰がこの問題を引き起こしているのか、どこから探し始めるのかを私に教えてもらえますか?.

36
dacopenhagen

Androidソースコードを読むことで、何もできないという警告のようです。ソースコードは、

BluetoothSocket#connect();

その後、それは呼び出します

BluetoothAdapter.getDefaultAdapter().getBluetoothService(null);

ここで重要なのは、上記の行で渡すnullパラメーターです。このため、コールバックは行われず、BluetoothSocketクラスは警告をスローします。

これは単なる警告であるため、それについて何もする必要はないと思います。

https://Android.googlesource.com/platform/frameworks/base/+/master/core/Java/Android/bluetooth/BluetoothSocket.Java 行306 https:// Android。 googlesource.com/platform/frameworks/base/+/master/core/Java/Android/bluetooth/BluetoothAdapter.Java line 1610

36
AndreasPK

これは、複数のBluetoothソケットが一度に開かれたときに呼び出されるようです。これを修正するには、一度に1つのソケットのみを開くようにしました。

6
dacopenhagen

アプリケーションを閉じた後でもこのエラーが発生し、可能な方法でそれを取り除くことはできません。この開始後、Bluetoothをオンにすることさえできなくなったため、電話をハードリブートする必要があります。

今(同じコードで)それは私の携帯電話の1つでのみ発生します。多分それはドライバーの問題です。

3

BluetoothHeadset.STATE_CONNECTEDの状態でBluetoothHeadset.ACTION_CONNECTION_STATE_CHANGEDを​​受信した直後にBluetoothSocket.connect()を試行した後に、このメッセージを受信しました。 BluetoothSocket.connect()も失敗しました。 BluetoothSocket.connect()を試みる前に500msのタイムアウトを追加した後、これにより実際に接続する問題が解決しました。メッセージ「BluetoothManagerCallbackなしで呼び出されたgetBluetoothService()」は残りますが、すべてが機能します。

0
Pepijn