Android BLE 中每个连接发送的数据包数量是不是有限制?
Posted
技术标签:
【中文标题】Android BLE 中每个连接发送的数据包数量是不是有限制?【英文标题】:Is there a limitation of the number of packets sent per connection in Android BLE?Android BLE 中每个连接发送的数据包数量是否有限制? 【发布时间】:2020-12-02 09:43:07 【问题描述】:我正在尝试使用 android 设备和 nRF52840 BLE 模块制作数据传输应用程序。
由于我是蓝牙和 BLE 的新手,所以我已经阅读了几篇关于如何使用它的文档。
感谢 google,我编写并构建了几行代码,使 nRF52840 能够与安装在 Android 中的 nRF 连接应用程序连接。
但与我阅读的the document相反,在单个连接间隔内似乎只传输了5~6个数据包。
据我了解,Android 蓝牙存在固有局限性,例如 11.25 ms of minimum connection interval rather than 7.5 ms of Bluetooth 5 spec。
一个blog post on the Punchthrough说Android中每个连接事件的最大数据包数限制为6个,但最后一次更新是在4年前。所以,恐怕它在最近的 Android 操作系统中是否发生了变化。
虽然我尝试在 Android 开发者指南中找到相关信息,但我无法...
有没有人可以帮我解决这个问题?
【问题讨论】:
【参考方案1】:不,没有限制。 Android 在 HCI 级别将最小/最大连接事件长度参数设置为 0,这意味着由手机中的蓝牙芯片决定连接事件保持打开多长时间。
通常,当蓝牙固件决定连接事件将保持打开多长时间时,会考虑很多因素,例如并发连接数、正在进行的扫描、其他无线电流量(BT 经典和 wifi)和连接长度间隔。
【讨论】:
这是否意味着发送/接收数据包的数量没有软件方面的限制?由于该设备仅用于我的 BLE 通信目的,我认为没有并发连接、持续扫描和其他无线电流量 Android 软件(开源)中没有。这个逻辑在蓝牙芯片上运行的蓝牙固件中,在我所知道的所有情况下,它都是专有的和封闭的源代码。因此,它会根据设备具有的蓝牙芯片而有很大差异。以上是关于Android BLE 中每个连接发送的数据包数量是不是有限制?的主要内容,如果未能解决你的问题,请参考以下文章
Galaxy S3 Android 4.3 上 BLE 的连接间隔