2016-04-08 158 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)对象,设备将不会被发现。