我开发了一个需要运行连续BLE扫描的应用程序,因为它必须检查所有周围的外围设备是否正在传输。 当其中一个或多个停止传输时,我的应用必须发出警报。 我在某些手机上测试了它:
1 - Android 5.1.1的Samsung Note 4 2 - 使用Android 6.0获得荣誉8 3 - 采用Android 6.0.1的LG Nexus 5 4 - Samsung Note 4 with Android 6.0.1 5 - 三星J5与Android 6.0.1
仅在手机4和5上,当设备处于清醒状态时,BLE外围设备的发现似乎表现不同。与它被锁定时相比。 特别是,当我按下电源按钮并且设备进入锁定状态时,手机会停止发现我的外围设备 - 或者至少,发现是以非常低的频率触发的。当我再次按下电源按钮(通过输入引脚返回解锁模式)时,BLE发现再次启动并持续运行。
操作扫描的服务完全活跃并且正在运行,但它只是不执行扫描。
这种奇怪的行为只发生在手机4和5(Samsung with Android 6.0.1)上。相同的手机与不同的Android版本,并在不同的手机上的相同的Android版本似乎不受影响。
我尝试了各种解决方法,但没有成功:
有没有人遇到过同样的问题?
编辑:经过测试,在Android Note 4.4.2
的三星Note 2上也可以答案 0 :(得分:0)
这可能与位置服务进入低优先级状态有关。您可以尝试在测试设备中将服务转换为高精度并重新测试。