我有一个应用程序,它将作为BLE中心(扫描外围设备),在iOS 8及更高版本上运行 . 此外,我还有一个自定义附件充当外围设备(宣传具有自定义特征的自定义服务) .

我发现默认的MTU和特征大小是20个字节,但它们似乎可以协商达512个字节 . 较大的尺寸对我的应用程序非常有用,因为我打算以突发方式发送大约20KB的数据,大约每小时10次 .

据我所知,外设和中央都应该在连接阶段协商MTU(和特征?)大小 .

Does this happen automatically or do I have to write some special code in my central app?

How do I determine current MTU and supported max characteristic size in my application?

Will the sizes remain constant during single connection session or can they suddenly change, and then how can my app find out when the change occurs?

我一直在阅读BLE规范文档和Apple开发人员文档,但目前还不清楚BLE MTU和特征大小协商在实践中如何工作以及如何在我的代码中正确处理它 .

我可以联系外围配件制造商,并在必要时要求他们进行一些软件调整;因此我可以肯定它们将支持更大的MTU尺寸 . 我只是不确定我应该在iOS方面做什么 .