我们开发了一个跟踪车辆行程的 Android 应用程序,其中每辆车都安装了一个 BLE 设备,该设备会在车辆启动时唤醒。
为了确定用户何时在车内以及我们应该何时开始跟踪他们的旅程,Android 应用程序实现了一个前台服务,该服务运行 BLE 扫描(通过 Android 的 BluetoothLeScanner)来查找 BLE 设备。找到设备后(唤醒后),扫描停止,应用程序将连接到它并保持连接,直到旅程结束。
这在大多数 Android 设备上运行良好,但是我们看到了一个间歇性问题,即 BLE 扫描仪在唤醒后几分钟内找不到 BLE 设备。有时长达5分钟。
BLE扫描仪配置如下:
- 扫描模式 = 低延迟
- 匹配模式 = 粘性
- 回调类型 = 所有匹配
- 报告延迟 = 未设置
- 扫描过滤器 = 设备地址设置为查找特定地址
我们还实施了唤醒锁,以确保即使应用程序不在前台,扫描过程也会继续进行。
我们在一些 Android 10 设备上遇到了延迟。
该应用程序针对 Android 10。
任何帮助将不胜感激。
干杯,安迪