BluetoothAdapter的方法startLeScan有时会在扫描BLE设备时返回false。因此,我在我的应用程序中遇到问题。我正在使用Lollipop以后的新方法startScan(ScanCallback回调),但需要支持API级别18及以上。任何帮助非常感谢。
答案 0 :(得分:4)
如果查看startLeScan
here的源代码,您会发现有几件事可能导致返回代码为false:
RemoteException
。android.bluetooth.IBluetoothGatt
registerClient
的内部呼叫失败。由于这有时会起作用,问题可能不是1或3.您可以通过查看LogCat中是否出现错误来检查它是否为4。
上面的第2项是一个很好的候选人。您确定代码始终正确停止扫描吗?您可能希望每次开始和停止扫描时记录,并确保您从未看到连续两次开始。
如果问题不是上述问题,则会留下可能性5,这表明ROM中的蓝牙芯片或驱动程序存在问题。如果是这种情况,您应该能够在不同的设备上运行相同的代码,并看到问题消失。