Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS BLE central如何在通知模式下从外围设备接收超过182字节的数据?_Ios_Swift_Bluetooth Lowenergy_Core Bluetooth - Fatal编程技术网

iOS BLE central如何在通知模式下从外围设备接收超过182字节的数据?

iOS BLE central如何在通知模式下从外围设备接收超过182字节的数据?,ios,swift,bluetooth-lowenergy,core-bluetooth,Ios,Swift,Bluetooth Lowenergy,Core Bluetooth,我有一个定制的BLE外设,可以向中央计算机发送通知数据包。该设备一次发送234字节的数据包,并且期望中心注册以通知设备上的特征更新。外围设备正在向中央发送234字节的数据,但iOS设备在didUpdateValueForCharacteristic函数中仅接收182字节的数据 在android中,中央软件工作正常,手机(中央)在一次通知事件中接收234字节。-这在安卓系统中运行良好,但在iOS设备上存在问题 iOS设备是否需要任何配置才能从BLE外围设备接收完整长度的数据?任何帮助都将不胜感激

我有一个定制的BLE外设,可以向中央计算机发送通知数据包。该设备一次发送234字节的数据包,并且期望中心注册以通知设备上的特征更新。外围设备正在向中央发送234字节的数据,但iOS设备在didUpdateValueForCharacteristic函数中仅接收182字节的数据

在android中,中央软件工作正常,手机(中央)在一次通知事件中接收234字节。-这在安卓系统中运行良好,但在iOS设备上存在问题


iOS设备是否需要任何配置才能从BLE外围设备接收完整长度的数据?任何帮助都将不胜感激

iOS设备的最大ATT_MTU为185字节,这意味着每个数据包最多可以发送182个数据字节(其他3个字节是L2CAP的开销)。开始时,iOS设备只支持158字节,后来增加到185字节

ATT_MTU的工作方式是在连接时进行协商,中央发送其最大ATT_MTU(即iPhone为185),外围设备使用其自身的ATT_MTU(即您的情况为237)进行回复,然后连接的ATT_MTU将是两者之间的最小值(即185)。所以要回答你的问题,没有办法配置你的iOS设备来发送完整长度的数据,因为这是一种低级配置,苹果不允许访问

有关更多信息,请查看以下链接:-


多个来源表明MTU依赖于设备:@M.Kotzjan MTU配置应应用于固件端,对吗?固件和智能手机正在协商彼此之间的最大通用MTU。我是说MTU取决于您使用的iOS设备,较旧的设备无法实现更高的MTU数据包长度扩展。这是蓝牙4.2规范中引入的一项增强功能,它将最大数据长度从27增加到251。一旦您的设备成功完成DPLE过程,则将协商MTU。如何扩展数据包限制?