【问题标题】:Implement a service to stay alive permanently for detecting BLE controllers on Android?实施一项服务以永久保持活动状态以检测 Android 上的 BLE 控制器?
【发布时间】:2021-02-24 04:21:21
【问题描述】:

我有一个基于 BLE 控制器和云服务的访问系统。我们将实施“免提”模式来访问禁区。意思是:

  • 用户无需使用智能手机即可启用访问(它应该可以在整个工作日工作)
  • 智能手机应在后台模式下扫描/查找 BLE 控制器。

我的想法:

计划“A”正在使用组合

  1. 前台服务(在主动模式下工作)
  2. FCM 高优先级消息传递(在 Doze Mode 中唤醒)

Plan 'B' 正在使用 Android 的白名单应用程序来防止在打盹模式下进行电池优化。

【问题讨论】:

    标签: android bluetooth-lowenergy foreground-service android-doze


    【解决方案1】:

    如果您只想执行后台 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)。然后,当匹配您的过滤器的广告包到达时,您的应用进程将启动。

    【讨论】:

      猜你喜欢
      • 2020-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-15
      相关资源
      最近更新 更多