移动应用程序可以连接到 BLE 设备并在后台保持连接数小时吗?

Posted

技术标签:

【中文标题】移动应用程序可以连接到 BLE 设备并在后台保持连接数小时吗?【英文标题】:It's possible for a mobile app connect to a BLE device and keep the connection alive for hours in background? 【发布时间】:2018-11-08 17:50:50 【问题描述】:

我们有一个需要在晚上启动的设备,该设备是通过移动应用程序发送的蓝牙命令启动的。是否可以在应用处于后台时发送此命令并持续监控设备(即接收数据),例如 30 分钟?

如果可能的话,在 iosandroid 中实现此功能的方法是什么?

更新:想想睡眠跟踪设备;问题不应该是整夜扫描,因为用户必须在睡觉前连接设备(并最终尝试自动重新连接到已知设备,而无需扫描)。我在问是否可以保持连接并发送/接收数据,例如,整夜更新内部数据库。

【问题讨论】:

您需要使用 Service 和 BroadcastReceiver 来更新 UI。 【参考方案1】:

关于 Android BLE 系统开发的一些注意事项,请阅读以下内容了解更多信息:https://blog.classycode.com/undocumented-android-7-ble-behavior-changes-d1a9bd87d983

BLE 扫描从 Android 7 开始就具有防止滥用功能。这是什么意思?

    防止应用停止和启动 BLE 扫描超过 5 次 时间在 30 秒的窗口内。
      长时间运行的扫描被转换为机会扫描。 (30 分钟)。

关于后台进程取决于你想要什么类型的服务。您可以启动带有通知的前台服务,也可以启动始终在后台运行且没有通知的作业。

如果您可以更准确地了解系统的工作原理,我可以给出更详细的解释。

【讨论】:

以上是关于移动应用程序可以连接到 BLE 设备并在后台保持连接数小时吗?的主要内容,如果未能解决你的问题,请参考以下文章

与 BLE 设备保持连接的 Android 应用

使用 MAC ios 连接到 BLE 设备

XCode:如何通过 UUID 连接到 BLE 外围设备?

树莓派 3 BLE 设备

目标 C-是不是可以从 iWatch 连接到 BLE 设备?

无法通过 BLE 连接到 AirPods