在Google上进行了大量研究后,没有取得积极的结果,这使我在这里提出了一个问题。
我想知道是否有任何方法与BLE外设协商MTU大小。
我在我的应用程序中使用Plugin.BLE
软件包以连接到蓝牙。一切都可以在其他设备上正常运行,但是,通过与iOS设备配对,MTU大小默认为20,无法设置。
这是我请求MTU时代码的样子:
await Run(async () => mtu = await device.RequestMtuAsync(512));
Msg.Log(this, $"mtu is {mtu}");
你们有什么解决方案可以让App协商iOS上的MTU大小吗?
答案 0 :(得分:0)
建立连接后,将在对等点(中央和外围设备)之间协商蓝牙LE连接参数。 iOS端没有对此进程的API访问权限,但可以在另一端更改它。默认情况下,您将获得向后兼容的BLE 4.0参数(MTU = 23,Datalength = 27)。如果外围设备至少为4.2,则可以协商并获得更好的值。
我刚刚在iPad Pro(2018 / iOS 13.5)上进行了测试,可以获得MTU 247数据长度251。
底线:在开始交换数据之前,请在外围设备上执行此操作。
(我们正在Nordic nRF52840芯片上执行此操作,因此请查看北欧api中的相关信息,以了解如何执行此操作)