在ios 8中使用蓝牙发送到外设的数据量

问题描述:

我正在使用蓝牙从BLE设备向外设硬件进行数据传输。我想以二进制文件的块形式写入数据,因为总数据长度为143233.我发现一行“最大MTU为iOS 7设备为132字节,iOS 6为20 B”,但iOS 8如何? iOS 8的最大区块大小是多少?这是我使用的代码,我不知道我是否正确的方式,所以帮助我,并指导我,如果我错了。提前致谢。在ios 8中使用蓝牙发送到外设的数据量

var count:Int = 0 
var counter:Int = 0 
var str:NSString = NSBundle.mainBundle().pathForResource("spp", ofType: "bin")! 
println("string value is \(str)")  
var dataFile:NSString = NSString.stringWithContentsOfFile(str, encoding: NSASCIIStringEncoding, error: nil) 
data = dataFile.dataUsingEncoding(NSUTF8StringEncoding) 
println(data!.length) 
println(dataFile.length) 
var dataLen:Int = data!.length 
if (dataLen > 132) 
    { 
     while(count < dataLen && dataLen - count > 132) 
     { 
      peripheral.writeValue(data!.subdataWithRange(NSMakeRange(count, 132)), forCharacteristic: arrCharacteristics!.objectAtIndex(1) as CBCharacteristic , type: CBCharacteristicWriteType.WithResponse) 
      NSThread.sleepForTimeInterval(0.005) 
      println("Write performed \(counter++)") 
        count += 132 
       } 
      } if (count < dataLen) 
{ 
    peripheral.writeValue(data!.subdataWithRange(NSMakeRange(count, dataLen - count)), forCharacteristic: arrCharacteristics!.objectAtIndex(1) as CBCharacteristic , type: CBCharacteristicWriteType.WithResponse) 
} 

我在猜测Jalek找到了他的答案,但对于其他人寻找数字。

iOS 7请求135字节MTU(132字节数据+ 3开销)。

iOS 8请求158字节的MTU(155字节数据+ 3开销)。

显然,它将取决于其他设备是否接受这些值或返回较低的值。

+0

我可以在iOS 9.2上验证mtu是158以及 – 2016-01-18 23:11:02

+0

这些数字的任何来源? – yageek 2016-11-02 17:26:03