首页 > 解决方案 > BLE Peripheral 的广告能否唤醒并触发与 Master Android 设备的连接?

问题描述

我有一个配对的BLE 生命体征监测设备(例如血压袖带)和一个 Android 应用程序。测量后,外围设备会发布几秒钟的广告,这可能发生在一天中的任何时间。

Android 设备是否有可能不扫描任何东西但仍然让外围设备的广告数据包触发应用程序内发生的事情?

我不确定,但也许类似于蓝牙耳机一旦打开,无需任何用户交互即可自动连接设备?

我确实找到了这个问题,但是查看,它似乎仅适用于信标外围设备,而我正在使用的生命体征设备并非如此(或者外围设备是否是信标无关紧要?) .

因为我的谷歌搜索并没有给我太多希望,所以我确实考虑过用低功耗模式无休止地扫描。但是我们如何保证我们能够捕获全天仅发生几秒钟的广告数据包呢?

谢谢!

标签: androidbluetoothbluetooth-lowenergy

解决方案


只需调用connectGatt您的 BluetoothDevice 对象,并将 autoConnect 参数设置为 true。请参阅BLE 的 connectGatt 中哪个正确的 autoConnect 标志?更多细节。如果蓝牙重新启动,请记住重新启动连接尝试(请参阅https://stackoverflow.com/a/36763538/556495)。您还应该在您的应用程序进程中运行一个前台服务,以防止该进程被 Android 杀死。

最好先绑定设备(请参阅Android 保存 BLE 设备以在应用关闭后重新连接原因)。

由于用于自动连接的扫描参数占空比非常低,因此您应该以短间隔(20 毫秒)至少 1280 毫秒(最好是 5 或 10 秒)进行广告,以防手机蓝牙芯片中存在无线电调度冲突。


推荐阅读