2016-04-08 112 views
0

我已經編寫了一個android服務,可以持續掃描特定設備,當設備被發現時,它會與設備連接,讀取數據並斷開連接。當設備再次投放廣告時,該服務會再次進行相同的操作。 一般來說,它工作正常,並顯示預期的行爲,但如果我關閉藍牙並重新打開它,該服務不會連接到廣告設備。一旦藍牙開啓,我已經嘗試再次掃描。我也嘗試重新連接到GATT,但沒有任何幫助。重新啓動藍牙重啓後的BLE掃描(ANDROID)

回答

0

我想出了錯誤。對於面臨相同問題的其他人可能會有用。我的問題是我在我的Scan方法中進行了檢查,以確保只有當我的BluetoothGatt對象爲空時纔開始掃描。

public void startNordicScan() { 
     if (mGatt == null) { 
      Log.d(LOGTAG, "startScan"); 
      BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner(); 
     scanner.startScan(mScanCallback); 
     } 
    } 

所以,如果我開始再次掃描未做mGatt(BluetoothGatt)對象,設備將不會被發現。