startLeScan返回false

时间:2015-08-05 13:39:36

标签: android bluetooth-lowenergy android-bluetooth ibeacon-android

BluetoothAdapter的方法startLeScan有时会在扫描BLE设备时返回false。因此,我在我的应用程序中遇到问题。我正在使用Lollipop以后的新方法startScan(ScanCallback回调),但需要支持API级别18及以上。任何帮助非常感谢。

1 个答案:

答案 0 :(得分:4)

如果查看startLeScan here的源代码,您会发现有几件事可能导致返回代码为false:

  1. 已提供空回调
  2. 客户端已使用相同的回调
  3. 启动扫描
  4. 设备不支持蓝牙LE
  5. 发生内部RemoteException
  6. android.bluetooth.IBluetoothGatt registerClient的内部呼叫失败。
  7. 由于这有时会起作用,问题可能不是1或3.您可以通过查看LogCat中是否出现错误来检查它是否为4。

    上面的第2项是一个很好的候选人。您确定代码始终正确停止扫描吗?您可能希望每次开始和停止扫描时记录,并确保您从未看到连续两次开始。

    如果问题不是上述问题,则会留下可能性5,这表明ROM中的蓝牙芯片或驱动程序存在问题。如果是这种情况,您应该能够在不同的设备上运行相同的代码,并看到问题消失。