【发布时间】:2018-09-11 18:09:32
【问题描述】:
我想开发一个始终监听 ble 广告的 android 应用程序,对信标很有用。该应用程序具有活动和后台服务。所有的 BLE 操作都在服务中完成,并且该服务在找到特定的 mac 时执行 REST 发布:
... mBluetoothAdapter.startLeScan(this); ...
public void onLeScan(final BluetoothDevice device, final int rssi, byte[] scanRecord) ...
如果我运行应用程序并让智能手机分开,屏幕会关闭,但应用程序会继续工作,因为我可以在 REST 服务日志中看到有一个呼叫。但是,或多或少 3 小时后,android 应用程序停止调用 rest 服务。
由于 android 服务是 Sticky,a 再次盯着应用程序并关闭应用程序。 3 秒后,服务启动,我看到休息呼叫完成。但是,15 分钟后服务停止调用 rest server。
所有逻辑都在 onLeScan() 回调中。所以我可以推断,即使周围有很多 BLE 设备不断地做广告,这个回调也会停止调用......
请问有什么建议吗?
非常感谢
【问题讨论】:
标签: android bluetooth-lowenergy