3

私は、30分ごとに定期的にBLEスキャンを実行するRxAndroidBleライブラリを使用してアプリケーションを開発しています。 2時間後、通常5〜24時間後にスキャンが停止します。スキャンが開始されることになっているたびに、私が取得:Android BLE:「スキャンに失敗しました。理由のアプリケーション登録がUUIDで失敗しました」

09-05 09:08:37.160 8160-8160/myapp D/BluetoothAdapter: startLeScan(): null 
09-05 09:08:37.165 8160-8160/myapp D/BluetoothAdapter: STATE_ON 
09-05 09:08:37.165 8160-8160/myapp D/BluetoothAdapter: STATE_ON 
09-05 09:08:37.165 8160-8160/myapp D/BluetoothLeScanner: Start Scan 
09-05 09:08:37.165 8160-8160/myapp D/BluetoothAdapter: STATE_ON 
09-05 09:08:37.165 8160-8160/myapp D/BluetoothAdapter: STATE_ON 
09-05 09:08:37.170 8160-8160/myapp D/BluetoothAdapter: STATE_ON 
09-05 09:08:37.170 8160-8160/myapp D/BluetoothAdapter: STATE_ON 
09-05 09:08:37.210 8160-12850/myapp D/BluetoothLeScanner: onClientRegistered() - status=133 clientIf=0 
09-05 09:08:37.210 8160-12850/myapp D/BluetoothLeScanner: Registration failed, unregister clientIf = 0 
09-05 09:08:37.215 8160-8160/myapp D/BluetoothLeScanner: Scan failed, reason app registration failed for UUID = 4c321920-a2b7-449a-bc24-ea4361f7a255 
09-05 09:08:44.150 8160-8160/myapp V/myapp.debug: unsubscribing scan 
09-05 09:08:44.150 8160-8160/myapp V/myapp.debug: Clearing scan subscription 
09-05 09:08:44.150 8160-8160/myapp D/BluetoothAdapter: stopLeScan() 
09-05 09:08:44.150 8160-8160/myapp D/BluetoothAdapter: STATE_ON 
09-05 09:08:44.155 8160-8160/myapp D/BluetoothAdapter: STATE_ON 
09-05 09:08:44.155 8160-8160/myapp D/BluetoothAdapter: STATE_ON 
09-05 09:08:44.155 8160-8160/myapp D/BluetoothAdapter: STATE_ON 
09-05 09:08:44.155 8160-8160/myapp D/BluetoothLeScanner: could not find callback wrapper 

は、誰もがこの問題を引き起こしたり、それを修正するために何が何ができるかのいずれかのアイデアを持っていますか?

+0

こんにちは、私はあまりにも長い間、あなたがデバイスで確立した接続の間にいくつかのエラーが出るかもしれないと思います。 RxAndroidBle(https://github.com/Polidea/RxAndroidBle/issues/63)にBLEクライアントが誤ったシナリオで正しく閉じられないというバグがあります。 –

+1

さらに調査したところ、主にスキャンに関連していると思います。まったくスキャンしなければ、この問題は発生しません。しかし、私はまだユースケースにスキャンが必要な場合に、この問題を回避する方法を学ぶことに興味があります。 – starman

答えて

0

接続の数が2つの場合、最大数がBluetoothGatt個に達するという問題があります。

BluetoothGattオブジェクトで新しいスキャンを開始する前にすべてのデバイスを切断した後にclose()を呼び出してください。

関連する問題