BLE扫描:在“华为Ascend Mate2手机”上只调用一次回调

时间:2016-06-14 04:06:16

标签: android ibeacon bluetooth-lowenergy ibeacon-android

我有一个工作的BLE扫描应用程序,在过去的几个月里一直在Nexus 5上运行良好(从4.4到6.0的各种API版本)。今天我们在具有API 22的不同设备“Huawei Ascend Mate2”上运行应用程序并发现了我认为有趣或特殊的行为:回调被连续触发(大约每秒三次),但我的iBeacon仅在一次回调中被检测到在剩余的回调中它选择了房子里的其他设备(如netgear路由器和roku等;我不知道这个netgear和rouku是否是BLE设备)。 我的BLE扫描代码与此处描述的代码非常相似http://www.truiton.com/2015/04/android-bluetooth-low-energy-ble-example/

这个帖子 Android 4.4 BLE Scanning lack of stability表明BLE扫描在5.0+上是稳定的,但在我的情况下这是不正确的,因为我在API 22上

这个帖子 Android BLE Beacon scanning on different phone models建议我们需要每1.5秒打开并关闭扫描,这在我们的用例中是不实际的,因为我们的应用程序应该每天运行10个小时(我们认为启动/停止系统资源是昂贵的操作)

我很困惑为什么在Nexus 5的连续回调中检测到同一个信标(在4.4和6.0 Android API上测试);但是当在“华为Ascend Mate2”上运行时,虽然不断调用回调,但在后续回调中检测到其他非BLE设备时,只检测到一次相同的iBeacon。

这是我第一次在Nexus之外进行测试。有人在“华为Ascend Mate2”上测试BLE扫描吗?任何意见和评论将不胜感激。

“华为Ascend Mate2”:设备型号为MT2L03,Android版本为5.1

1 个答案:

答案 0 :(得分:0)

我使用了很多不同的设备,我可以告诉你,不同设备上的行为是非常不同的。我没有华为Mate2,但我可以观察到类似的行为,每个设备只能获得一次扫描结果。因此,如果您需要为同一设备提供多个扫描结果,则需要不时重新启动扫描。我认为1.5s有点太多了,但这取决于你的用例。