移动应用程序可以连接到 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 分钟?
如果可能的话,在 ios 和 android 中实现此功能的方法是什么?
更新:想想睡眠跟踪设备;问题不应该是整夜扫描,因为用户必须在睡觉前连接设备(并最终尝试自动重新连接到已知设备,而无需扫描)。我在问是否可以保持连接并发送/接收数据,例如,整夜更新内部数据库。
【问题讨论】:
您需要使用 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 设备并在后台保持连接数小时吗?的主要内容,如果未能解决你的问题,请参考以下文章