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