如何增加LeScanCallback频率?

时间:2016-05-06 03:08:03

标签: android ibeacon bluetooth-lowenergy

我们想在android 4.3上开发ibeacon功能。为了提高精度,我们将外设的广告费率提高到50Hz。但是" LeScanCallback"每秒仅调用3到5次。然而,"做了发现周边"在iPhone上调用可以达到每秒100次。   我试图重启" startLeScan"每500ms,400ms,300ms。增幅有限。   当我将外围设备的广告费率设置为10Hz时。 " LeScanCallback"被叫为每秒1到3个。

有什么建议吗?   会不会更好如果我编写一个JNI代码来直接调用低级api,比如ble驱动程序。

1 个答案:

答案 0 :(得分:1)

这可能是特定于设备的问题。我在Nexus和三星设备上做了很多类似的测试,信标以20 Hz的频率传输,通常看到大约80%的数据包在Android设备上被检测到。 (意思是每秒调用LeScanCallback 16次。)

某些设备(例如Nexus 4,Moto G)的芯片组每个唯一扫描的蓝牙mac地址只返回一个广告数据包,直到您停止并重新开始扫描。

我怀疑低级代码会有所帮助。在采取这样的步骤之前,我会尝试使用其他设备。