Android BLE扫描模式设置间隔
Posted
技术标签:
【中文标题】Android BLE扫描模式设置间隔【英文标题】:Android BLE scan mode setting interval 【发布时间】:2018-02-08 12:58:09 【问题描述】:我正在编写一个小型测试应用程序来评估蓝牙模块。
应用当前正在使用积极匹配模式和低延迟扫描模式进行扫描。我们已经控制了蓝牙模块的广告间隔,并且正在尝试评估需要多少广告才能触发android中的回调。
有人知道与低延迟、平衡和低功耗扫描模式设置相关的 android BLE 扫描的间隔和窗口吗?
我发现了这个 (How to set BLE scan interval and windows no just choose mode in android?) SO 问题,但是如果我在我的 android 设备开始扫描后 5000 毫秒启动我的蓝牙设备广告,它会在 3000 毫秒内找到。 (表示5000ms间隔,5000ms窗口不正确?)
【问题讨论】:
【参考方案1】:它们没有记录。
如果您在“与常规扫描设置相对应的扫描参数”下搜索,您可以在https://android.googlesource.com/platform/packages/apps/Bluetooth/+/master/src/com/android/bluetooth/gatt/ScanManager.java 看到来源。您需要查看历史记录,了解不同 Android 版本之间的值是如何变化的。
本文发布时的当前值如下:
/** * Scan params corresponding to regular scan setting */ private static final int SCAN_MODE_LOW_POWER_WINDOW_MS = 512; private static final int SCAN_MODE_LOW_POWER_INTERVAL_MS = 5120; private static final int SCAN_MODE_BALANCED_WINDOW_MS = 1024; private static final int SCAN_MODE_BALANCED_INTERVAL_MS = 4096; private static final int SCAN_MODE_LOW_LATENCY_WINDOW_MS = 4096; private static final int SCAN_MODE_LOW_LATENCY_INTERVAL_MS = 4096;
您还可以获取 hci snoop 日志并查看它告诉控制器使用哪些扫描参数。请注意,根据规范,这些参数只是一个建议。控制器可能会根据其他并发无线电活动使用不同的值。
【讨论】:
以上是关于Android BLE扫描模式设置间隔的主要内容,如果未能解决你的问题,请参考以下文章
检测Android App收到扫描请求时是不是发送BLE扫描响应
Cordova:在后台模式下扫描 iBeacons / BLE(iOS 和 Android)
BLE 5 外围设备未在支持 BLE 5 的 Android 手机和 iPhone 上得到扫描