3

我正在開發一個應用程序,使用RxAndroidBle庫,每隔30秒定期執行BLE掃描,並且每隔一分鐘左右執行一次BLE掃描。幾小時後,通常在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

問題是,在幾次連接之後,您會達到最大數量的BluetoothGatt對象。

在您斷開所有設備之後,在BluetoothGatt對象上開始新的掃描呼叫close()之前。