Android 如何增加LeScanCallback频率?

Android 如何增加LeScanCallback频率?,android,ibeacon,bluetooth-lowenergy,Android,Ibeacon,Bluetooth Lowenergy,我们想在安卓4.3上开发ibeacon功能。为了提高准确性,我们将外围设备的广告率提高到50赫兹。但是“LeScanCallback”每秒只调用3到5次。然而,iPhone上的“DidDiscoveryPeripheral”可以达到每秒100次。 我试着每500毫秒、400毫秒、300毫秒重启一次“惊人扫描”。增幅有限。 当我将外围设备的广告频率设置为10Hz时。调用“LeScanCallback”的速率下降到每秒1到3次 有什么建议吗? 如果我编写一个JNI代码,像ble驱动程序一样直接调用低

我们想在安卓4.3上开发ibeacon功能。为了提高准确性,我们将外围设备的广告率提高到50赫兹。但是“LeScanCallback”每秒只调用3到5次。然而,iPhone上的“DidDiscoveryPeripheral”可以达到每秒100次。 我试着每500毫秒、400毫秒、300毫秒重启一次“惊人扫描”。增幅有限。 当我将外围设备的广告频率设置为10Hz时。调用“LeScanCallback”的速率下降到每秒1到3次

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

这可能是一个特定于设备的问题。我在Nexus和Samsung设备上做过很多类似的测试,它们的信标以20赫兹的频率传输,通常会看到80%的数据包在Android设备上被检测到。(这意味着LeScanCallback每秒调用16次。)

某些设备(如Nexus 4、Moto g)的芯片组在停止并重新启动扫描之前,每个经过唯一扫描的蓝牙mac地址只能返回一个广告包


我怀疑较低级别的代码会有所帮助。在采取这一步骤之前,我会尝试使用不同的设备。

我们能在iphone上获得类似的每秒扫描吗?是的,上面的问题提到了这在iphone上有效。