当使用Android Scanble ScanSettings.SCAN\u MODE\u LOW\u LATENCY时,ScanCallback的合理频率是多少?

当使用Android Scanble ScanSettings.SCAN\u MODE\u LOW\u LATENCY时,ScanCallback的合理频率是多少?,android,android-5.0-lollipop,bluetooth-lowenergy,Android,Android 5.0 Lollipop,Bluetooth Lowenergy,我希望对正在广播的ble设备有实时响应。自从安卓棒棒糖(SDK 21)之后,就有了新的API,我在上面做了测试 ScanSettings.SCAN\u模式\u低延迟 使用最高占空比进行扫描。建议仅在应用程序在前台运行时使用此模式 这是启动ble扫描的代码 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { List<ScanFilter> filters = new ArrayList<Sca

我希望对正在广播的ble设备有实时响应。自从安卓棒棒糖(SDK 21)之后,就有了新的API,我在上面做了测试

ScanSettings.SCAN\u模式\u低延迟

使用最高占空比进行扫描。建议仅在应用程序在前台运行时使用此模式

这是启动ble扫描的代码

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    List<ScanFilter> filters = new ArrayList<ScanFilter>();
    ScanSettings scanSettings = new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).build();
    bluetoothLeScanner.startScan(filters, scanSettings, scanCallback );
}
MeasureFps的源代码是

我在Nexus5x上运行测试,它是Android棉花糖。 结果大多超过300毫秒,可能为2秒。
这些是预期的吗?
如果它们稳定在300毫秒以下就好了

22:18:34.203  I/MeasureFps: Average frame time = 2237.4 ms
22:18:36.792  I/MeasureFps: Average frame time = 485.6 ms
22:18:40.481  I/MeasureFps: Average frame time = 724.0 ms
22:18:43.467  I/MeasureFps: Average frame time = 343.8 ms
22:18:44.904  I/MeasureFps: Average frame time = 251.8 ms
22:18:47.238  I/MeasureFps: Average frame time = 427.8 ms
22:18:48.491  I/MeasureFps: Average frame time = 73.4 ms
22:18:56.139  I/MeasureFps: Average frame time = 288.6 ms
22:18:57.411  I/MeasureFps: Average frame time = 237.4 ms
22:18:58.393  I/MeasureFps: Average frame time = 182.2 ms
22:18:59.953  I/MeasureFps: Average frame time = 310.4 ms
22:19:02.446  I/MeasureFps: Average frame time = 497.2 ms
22:19:04.349  I/MeasureFps: Average frame time = 342.8 ms
22:19:12.984  I/MeasureFps: Average frame time = 1715.0 ms

您的BLE设备的播发间隔是多少?第一次广播需要更长的时间(等待稳定)才能开始,大约2秒。然后它每100毫秒广播一次。如果启用蓝牙监听日志,您可以在wireshark中查看手机正在选择的扫描参数。如果扫描窗口等于扫描间隔,则应无延迟,并且应捕获所有数据包。请记住,由于Android使用主动扫描(发送扫描请求以响应广告包并等待扫描响应),您可能无法获得所有广告包。你想实现什么目标?你就不能保持联系并以这种方式发送数据吗?谢谢你的评论。我的应用程序是通过检查广告数据来监控许多可移动设备的状态。手机无法同时连接这么多可移动设备。
22:18:34.203  I/MeasureFps: Average frame time = 2237.4 ms
22:18:36.792  I/MeasureFps: Average frame time = 485.6 ms
22:18:40.481  I/MeasureFps: Average frame time = 724.0 ms
22:18:43.467  I/MeasureFps: Average frame time = 343.8 ms
22:18:44.904  I/MeasureFps: Average frame time = 251.8 ms
22:18:47.238  I/MeasureFps: Average frame time = 427.8 ms
22:18:48.491  I/MeasureFps: Average frame time = 73.4 ms
22:18:56.139  I/MeasureFps: Average frame time = 288.6 ms
22:18:57.411  I/MeasureFps: Average frame time = 237.4 ms
22:18:58.393  I/MeasureFps: Average frame time = 182.2 ms
22:18:59.953  I/MeasureFps: Average frame time = 310.4 ms
22:19:02.446  I/MeasureFps: Average frame time = 497.2 ms
22:19:04.349  I/MeasureFps: Average frame time = 342.8 ms
22:19:12.984  I/MeasureFps: Average frame time = 1715.0 ms