我已经编写了一个Android服务,可以持续扫描特定设备,当找到设备时,它会与设备连接,读取数据并断开连接。当设备再次通告时,该服务再次进行相同的操作。 一般来说,它工作正常并显示预期的行为,但如果我关闭蓝牙并再次打开它,该服务不会连接到广告设备。一旦蓝牙开启,我就再次尝试扫描。我也尝试重新连接到关贸总协定,但没有任何帮助。
答案 0 :(得分:0)
我弄明白了这个错误。对于面临同样问题的其他人可能会有用。我的问题是我在我的Scan方法中进行了检查,以确保只有当我的BluetoothGatt对象为空时才开始扫描。
public void startNordicScan() {
if (mGatt == null) {
Log.d(LOGTAG, "startScan");
BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner();
scanner.startScan(mScanCallback);
}
}
因此,如果我在不制作mGatt
(BluetoothGatt)对象的情况下再次开始扫描,则不会发现设备。