在Android上,使用BLE,您可以扫描设备并连接/维护与设备的连接吗?

时间:2015-09-23 19:51:55

标签: android bluetooth-lowenergy android-bluetooth

TL; DR:你可以连接到设备并同时扫描更多设备吗?

我正在开发一款与使用BLE的设备对话的应用。刚刚完成BLE项目的一位同事警告我,你不能同时连接设备和扫描,否则会发生坏事。我已经推进了这个假设。所以目前我在每个屏幕上连接和断开连接。

连接时间有时需要~3 +秒,所以如果我深入应用程序(这也是你可以扫描更多设备的地方),我想通过不断开来加快速度。我玩了一下,一切都很好(同时做两件事)。

我在Android文档中读过您无法同时扫描蓝牙和BLE但我没有看到任何有关连接到BLE设备和扫描BLE设备的信息。

我的同事描述的一些症状是:

  • 无法关闭系统蓝牙(交换机将重新开启)
  • 蓝牙会崩溃(不确定是蓝牙共享还是别的什么)
  • 其他使用蓝牙功能的应用会崩溃

1 个答案:

答案 0 :(得分:1)

您可以同时连接并扫描......虽然某些手机/ Android版本上存在这些症状。 (使用某些三星设备的个人经验)

蓝牙可以管理多个连接,因此您可以同时扫描和连接是有意义的。(Multiple bluetooth connection)。

在较旧的API(18-20)中,您可以使用BluetoothAdapter中的startLeScan来搜索BLE设备。根据我的经验,这偶尔会导致您描述的问题。

但是,如果您使用的是API 21+,则使用BluetoothLeScanner.startScan是相当轻松的,并且不需要您处理计时器来重新启动扫描。您只需给它一个您正在寻找的蓝牙设备的过滤器和回调,它会在找到符合您条件的设备时通知您的应用。