我有一个应用程序,它将充当 BLE 中心(扫描外围设备),在 iOS 8 及更高版本上运行。此外,我有一个自定义附件充当外围设备(宣传具有自定义特征的自定义服务)。
我发现默认的 MTU 和特征大小是 20 字节,但它们似乎可以协商到 512 字节。更大的尺寸对我的应用程序非常有用,因为我打算以突发方式发送大约 20KB 的数据,大约每小时 10 次。
据我了解,外围设备和中央设备都应在连接阶段协商 MTU(和特性?)大小。
这会自动发生还是我必须在我的中央应用程序中编写一些特殊代码?
如何在我的应用程序中确定当前 MTU 和支持的最大特征大小?
在单个连接会话期间大小会保持不变还是会突然改变,然后我的应用程序如何找出改变发生的时间?
我一直在阅读 BLE 规范文档和 Apple 开发人员文档,但仍然不清楚 BLE MTU 和特征大小协商在实践中是如何工作的,以及如何在我的代码中正确处理它。
如有必要,我也许可以联系外围配件制造商并要求他们进行一些软件调整;因此我可以确定它们将支持更大的 MTU 大小。我只是不确定我应该在 iOS 端做什么。