AndroidアプリケーションでgetBluetoothService() called with no BluetoothManagerCallback
をエラーとして頻繁に取得しています。
ブルートゥースマネージャーのコールバックについて、これが何を引き起こしているのか、私は何も考えていません。誰がこの問題を引き起こしているのか、どこから探し始めるのかを私に教えてもらえますか?.
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
これは、複数のBluetoothソケットが一度に開かれたときに呼び出されるようです。これを修正するには、一度に1つのソケットのみを開くようにしました。
アプリケーションを閉じた後でもこのエラーが発生し、可能な方法でそれを取り除くことはできません。この開始後、Bluetoothをオンにすることさえできなくなったため、電話をハードリブートする必要があります。
今(同じコードで)それは私の携帯電話の1つでのみ発生します。多分それはドライバーの問題です。
BluetoothHeadset.STATE_CONNECTEDの状態でBluetoothHeadset.ACTION_CONNECTION_STATE_CHANGEDを受信した直後にBluetoothSocket.connect()を試行した後に、このメッセージを受信しました。 BluetoothSocket.connect()も失敗しました。 BluetoothSocket.connect()を試みる前に500msのタイムアウトを追加した後、これにより実際に接続する問題が解決しました。メッセージ「BluetoothManagerCallbackなしで呼び出されたgetBluetoothService()」は残りますが、すべてが機能します。