一些手机报告"扫描失败"当两个或更多iBeacon发射器发生错误时,我该如何找出这些手机?

时间:2016-08-30 12:07:25

标签: android ibeacon-android altbeacon

当我使用HUAWEI 7i手机将两个信标发射器放在" didRangeBeaconsInRegion"回调函数,代码报告:

E/CycledLeScannerForLollipop(11734): Scan Failed error. 

当我使用Nexus 5时,它没问题并返回两个信标信息包。

有没有什么方法可以解决这个错误? 如果没有,我怎么能在代码中弄清楚这种手机? 有没有像:

这样的代码
BeaconTransmitter.checkTransmissionSupported(context) 

检查此手机是否可以拨打两个或更多信标信号?

感谢您的帮助。

编辑: - 8月31日更新

我用这段代码尝试了三款手机,结果如下:

华为7i与Android 5.1.1:
多个发射器将导致扫描失败错误;

华为P8与Android 6.0:
多个发射器将返回仅一个信标包;

使用Android 5.1.1的Nexus 5:
多个发射器将所有信标包正确

我完全被这些现象搞糊涂了......

1 个答案:

答案 0 :(得分:0)

几点:

  • 您可以致电bluetoothAdapter.isMultipleAdvertisementSupported()查看特定Android设备是否允许一次传输多个广告。有些设备有,有些没有。

  • 如果上述呼叫返回false,则可能意味着根本不支持广告(例如Nexus 5),或者只能发送一个广告(例如Moto X)。

  • 即使支持多个广告,也只有有限数量的广告位,其他应用可能已全部使用过这些广告。没有办法说出有多少个免费插槽。如果您无法获得免费广告位,则广告将失败。

  • 当广告听起来像是该设备特有的固件错误时,您在华为7i上报告的扫描失败。这显然不是预期的行为,我没有在其他设备上看到它。您最好的选择可能是检测此设备类型,并禁止在您的应用上同时传输和扫描。