问题描述
有什么方法可以将 iOS 上的 MTU 值从默认值更改为任意值?
很像在 Android 中,可以执行 requestMTU(512)。
谢谢
解决方法
否,iOS 上的 MTU 是自动设置的,最大值为 185。这是对您问题的一个很好的回答:https://stackoverflow.com/a/42336001/10380092
注意:您可以通过这种方式获取 MTU 值(它将比 ATT MTU 少 3 个字节):
connectedPeripheral.maximumWriteValueLength(for: .withoutResponse)
使用参数 .withoutResponse
很重要,因为 .withResponse
总是会返回 512(当写有响应时,iOS 会自动选择方法:如果数据比 MTU 短则单次写入,或者如果数据是排队写入大于 MTU)。