BLE 扫描:回调仅在 "Huawei Ascend Mate2 Phone" 被调用一次
BLE Scanning: callback gets invoked only once on "Huawei Ascend Mate2 Phone"
我有一个正在运行的 BLE 扫描应用程序,过去几个月在 Nexus 5 上运行良好(在从 4.4 到 6.0 的各种 API 版本上)。今天我们 运行 不同设备 "Huawei Ascend Mate2" 上具有 API 22 的应用程序发现了我认为有趣或奇怪的行为:回调被连续触发(大约每秒三次),但我的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 小时(我们认为 starting/stopping系统资源是昂贵的操作)
我对为什么在 Nexus 5 的连续回调中检测到相同的信标感到困惑(在 4.4 和 6.0 Android APIs 上进行了测试);但是当 运行ning on "Huawei Ascend Mate2" 时,虽然回调被连续调用,但相同的 iBeacon 只被检测到一次,而其他非 BLE 设备在后续回调中被检测到。
这是我第一次在 Nexus 之外进行测试。有人在 "Huawei Ascend Mate2" 上测试过 BLE 扫描吗?任何意见和评论将不胜感激。
"Huawei Ascend Mate2":设备型号为MT2L03,Android版本为5.1
我使用过很多不同的设备,我可以告诉你,不同设备上的行为非常不同。我没有华为 Mate2,但我可以观察到类似的行为,每台设备只能获得一次扫描结果。因此,如果您需要为同一设备获得多个扫描结果,则需要不时重新启动扫描。我认为 1.5s 有点太多了,但这取决于您的用例。
我有一个正在运行的 BLE 扫描应用程序,过去几个月在 Nexus 5 上运行良好(在从 4.4 到 6.0 的各种 API 版本上)。今天我们 运行 不同设备 "Huawei Ascend Mate2" 上具有 API 22 的应用程序发现了我认为有趣或奇怪的行为:回调被连续触发(大约每秒三次),但我的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 小时(我们认为 starting/stopping系统资源是昂贵的操作)
我对为什么在 Nexus 5 的连续回调中检测到相同的信标感到困惑(在 4.4 和 6.0 Android APIs 上进行了测试);但是当 运行ning on "Huawei Ascend Mate2" 时,虽然回调被连续调用,但相同的 iBeacon 只被检测到一次,而其他非 BLE 设备在后续回调中被检测到。
这是我第一次在 Nexus 之外进行测试。有人在 "Huawei Ascend Mate2" 上测试过 BLE 扫描吗?任何意见和评论将不胜感激。
"Huawei Ascend Mate2":设备型号为MT2L03,Android版本为5.1
我使用过很多不同的设备,我可以告诉你,不同设备上的行为非常不同。我没有华为 Mate2,但我可以观察到类似的行为,每台设备只能获得一次扫描结果。因此,如果您需要为同一设备获得多个扫描结果,则需要不时重新启动扫描。我认为 1.5s 有点太多了,但这取决于您的用例。