问题描述
我目前正在为iOS开发BLE应用.在我的应用程序中,我需要实现一个分段协议,以使用BLE发送大量数据.我的应用程序需要扮演中心角色.
I'm currently developing a BLE App for iOS.In my application I need to implement a segmentation protocol to send large quantities of data using BLE.My application need to have the Central role.
我的问题是我无法获得协商的MTU.我可以获得外围设备的 maximumWriteValueLength
,但它比我的外围设备大,找不到我的中央对象的 maximumWriteValueLength
.
My issue is that I can't get the negotiate MTU. I can get the maximumWriteValueLength
of my peripheral but it is bigger that mine and can't find the maximumWriteValueLength
of my central object.
有人知道找到协商的MTU的方法还是访问我的 CBCentralManager
的 CBCentral
对象的方法吗?
Does someone know a way to find the negotiated MTU or a way to access the CBCentral
object of my CBCentralManager
?
推荐答案
我将为遇到相同问题的人解答.
I will answer for people with same issue.
现在(2017年2月),处于外围设备角色的iPhone的MTU始终为158.因此,我在短期解决方案(只是进行一些测试)中发现的是将中央MTU与158进行比较,然后选择较小的MTU.对于解决方案,更稳定的外设将在连接后将读取的特定特性内写入MTU大小.
Right now (February 2017) the MTU of iPhone in Peripheral role is always 158.So what I have found in short solution (just to make some test) is to compare the Central MTU to 158 and take the smaller one.For a solution more stable peripheral will write the MTU size inside a specific characteristic that I will read after the connection.
这篇关于在iOS上协商BLE MTU的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!