三星Android 6.0.1:手机锁定时BLE发现扫描停止

时间:2016-11-25 09:01:13

标签: android bluetooth-lowenergy android-bluetooth galaxy android-6.0.1-marshmallow

我开发了一个需要运行连续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打盹模式,包括Android设置和我应用中的源代码
  • 使用各种ScanSettings选项:ScanMode,NumOfMatches,MatchMode ......
  • 为扫描服务提供高唤醒锁定级别

有没有人遇到过同样的问题?

编辑:经过测试,在Android Note 4.4.2

的三星Note 2上也可以

1 个答案:

答案 0 :(得分:0)

这可能与位置服务进入低优先级状态有关。您可以尝试在测试设备中将服务转换为高精度并重新测试。