android - 实施一项服务以永久保持活动状态以检测 Android 上的 BLE 控制器?
问题描述
我有一个基于 BLE 控制器和云服务的访问系统。我们将实施“免提”模式来访问禁区。它的意思是:
- 用户无需使用智能手机即可访问(它应该可以在整个工作日工作)
- 智能手机应在后台模式下扫描/查找 BLE 控制器。
我的想法:
计划“A”正在使用
- 前台服务(在主动模式下工作)
- FCM 高优先级消息传递(在打盹模式中唤醒)
计划“B”正在使用 Android 的白名单应用程序来防止在打盹模式下进行电池优化。
解决方案
如果您只想执行后台 BLE 扫描,则不需要应用程序保持活动状态。只需使用 PendingIntent BLE 扫描功能https://developer.android.com/reference/android/bluetooth/le/BluetoothLeScanner#startScan(java.util.List%3Candroid.bluetooth.le.ScanFilter%3E,%20android.bluetooth. le.ScanSettings,%20android.app.PendingIntent)。然后,当与您的过滤器匹配的广告包到达时,您的应用程序将启动。
推荐阅读
- python - Python:这个翻译器如何替换字母
- reactjs - React - 设置异步响应的状态
- sql - SQL执行多记录,多列加法返回单个数字
- mysql - MySQL 查询仅在选择特定列和 WHERE JSON_CONTAINS() 时超时
- javascript - 如何组合两个服务人员?
- tcp - 为什么 Hazelcast 连接到另一台主机
- javascript - 从 Python 脚本的 Node.js 中的 spawn 进程获取数据
- python - 由于 SOCKS 依赖关系,无法在虚拟环境中安装任何软件包
- javascript - 从 pdf 和文档中提取文本和元数据
- amazon-web-services - AWS Elastic Beanstalk 单个容器,如何将新容器部署到现有环境?