我正在开发一个系统上的固件更改,以便通过使用一个相当大的广告间隔值来保存电流消耗。默认情况下,SDK使用187.5ms(基于NRF52840芯片的系统)广告间隔(头文件中的ADV_INTERVAL=300)。
我想使用更高的值(从1.5s到2s),但我看到,例如在iPhone上,苹果建议预设一些特定的“兼容”广告间隔值,以便iPhone能够发现设备。
Android端也是如此吗?
顺便说一句,不同Android版本的BLE扫描是否有明显的性能差异?
我的试用只在Android 5. 1上进行,这目前还不是很一致。我在使用1 s而不是2 s时显然有更好的结果,但使用一些中间值(例如1. 5 s)有时设备是从未见过的。
我这边没有太多的平板电脑。我也试过基于Android 11的平板电脑。我似乎它与其他Android 5. 1平板电脑相比也有不同的性能,所以现在我不能下结论...而且我有时也会面临Android 11 API上的一些关贸总协定连接问题...
1条答案
按热度按时间aiazj4mn1#
不,没有这样的列表。不同的Android版本使用不同的扫描参数,供应商也可以自定义这些。
每当外设进行通告时,它使用通告间隔加上0到10 ms之间的随机值。
因此,中心可以用作扫描间隔的最坏值是通告间隔加上5 ms,因为这可能使它们总是不同步。
Android将使用的扫描间隔和扫描窗口取决于您是执行扫描还是连接尝试(初始化)。此外,扫描模式https://developer.android.com/reference/android/bluetooth/le/ScanSettings.Builder#setScanMode(int)控制间隔/窗口参数。应用是在前台还是后台也会影响这些参数。
蓝牙控制器还可以修改主机(Android)提供的参数,你可以使用Android中的HCI日志来查看它发送给控制器的参数。