0
我已經編寫了一個android服務,可以持續掃描特定設備,當設備被發現時,它會與設備連接,讀取數據並斷開連接。當設備再次投放廣告時,該服務會再次進行相同的操作。 一般來說,它工作正常,並顯示預期的行爲,但如果我關閉藍牙並重新打開它,該服務不會連接到廣告設備。一旦藍牙開啓,我已經嘗試再次掃描。我也嘗試重新連接到GATT,但沒有任何幫助。重新啓動藍牙重啓後的BLE掃描(ANDROID)
我已經編寫了一個android服務,可以持續掃描特定設備,當設備被發現時,它會與設備連接,讀取數據並斷開連接。當設備再次投放廣告時,該服務會再次進行相同的操作。 一般來說,它工作正常,並顯示預期的行爲,但如果我關閉藍牙並重新打開它,該服務不會連接到廣告設備。一旦藍牙開啓,我已經嘗試再次掃描。我也嘗試重新連接到GATT,但沒有任何幫助。重新啓動藍牙重啓後的BLE掃描(ANDROID)
我想出了錯誤。對於面臨相同問題的其他人可能會有用。我的問題是我在我的Scan方法中進行了檢查,以確保只有當我的BluetoothGatt對象爲空時纔開始掃描。
public void startNordicScan() {
if (mGatt == null) {
Log.d(LOGTAG, "startScan");
BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner();
scanner.startScan(mScanCallback);
}
}
所以,如果我開始再次掃描未做mGatt
(BluetoothGatt)對象,設備將不會被發現。