CBMutableCharacteristic *characteristic = // the characteristic with long data- (voID)peripheralManager:(CBPeripheralManager *)peripheral dIDReceiveReadRequest:(CBATTRequest *)request { // Ensure offset is in the valID range if (request.offset > characteristic.value.length) { // respond with error [self.peripheralManager respondToRequest:request withResult:CBATTErrorInvalIDOffset]; return; } NSRange range = NSMakeRange(request.offset,characteristic.value.length - request.offset); request.value = [characteristic.value subdataWithRange:range]; [self.peripheralManager respondToRequest:request withResult:CBATTErrorSuccess]; }
只要响应不小于最大可传输单元(MTU),就会通过增加偏移值来调用回调. MTU由系统协商,您无法提前查询.因此,范围设置为一直延伸到数据长度,以便系统可以决定将多少数据发送到中心.默认情况下,它是20,但iOS 7有一些调整,可以实现更大的尺寸.查看WWDC视频以获取更多详细信息.
有了这些信息,您应该能够找到一种方法来公开您的数据.请记住,您拥有的服务和特征越多,发现所需的时间就越长.使用长读和长写只是一种方便.
总结以上是内存溢出为你收集整理的ios – CoreBluetooth特性值全部内容,希望文章能够帮你解决ios – CoreBluetooth特性值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)