我研究了这个链接BTLE Central Peripheral Transfer的示例代码.
此链接iOS 7 SDK: Core Bluetooth – Practical Lesson中还有另一个类似的示例
上述两个链接上的应用程序讨论了在BLE上的两个IOS设备之间发送和接收文本数据.
应用程序可以选择作为中央或外围设备,中央将接收从外围设备发送的文本数据.
它像头文件中的以下代码一样定义UUID.
#define TRANSFER_CHaraCTERISTIC_UUID @"08590F7E-DB05-467E-8757-72F6FAEB13D4"
在中央连接到外围设备之后,它发现了外围设备的特性.
如果UUID等于TRANSFER_CHaraCTERISTIC_UUID,则使用setNotifyValue:YES订阅它,如下面的代码所示.
- (voID)peripheral:(CBPeripheral *)peripheral dIDdiscovercharacteristicsForService:(CBService *)service error:(NSError *)error{ // Again,we loop through the array,just in case. for (CBCharacteristic *characteristic in service.characteristics) { // And check if it's the right one if ([characteristic.UUID isEqual:[CBUUID UUIDWithString:TRANSFER_CHaraCTERISTIC_UUID]]) { // If it is,subscribe to it [peripheral setNotifyValue:YES forCharacteristic:characteristic]; } } // Once this is complete,we just need to wait for the data to come in.}
问题如下:
第一个问题:
我在Bluetooth Development Portal找不到这个UUID:@“08590F7E-DB05-467E-8757-72F6FAEB13D4”.
这是由uuIDgen在终端创建的吗?
第二个问题:
如果我是Central,并且我使用setNotifyValue订阅了特性:YES就像上面的代码一样.
BLE会通过以下代码告诉Central有来自外设的新数据,概念是否正确?
– (voID)peripheral:(CBPeripheral *)peripheral dIDUpdateValueForCharacteristic:(CBCharacteristic *)特征错误:(NSError *)错误
我是IOS开发和BLE的新手.
提前致谢.
解决方法 第一个问题:>是的,Apple甚至建议在各种WWDC视频中使用uuIDgen生成这些UUID.蓝牙SIG未对128位UUID进行标准化,您可以使用这些UUID运行自己的@R_404_6179@.
第二个问题:
>是的,首先发现服务,然后是特征,然后是setNotifyValue:YES.从现在开始,您将通过[-CBPeripheralDelegate dIDUpdateValueForCharacteristic:error:]接收来自外围设备的通知.当您手动读取特征时,将调用相同的回调(无法区分读取响应与核心蓝牙中的通知).
总结以上是内存溢出为你收集整理的自定义UUID在IOS示例中对BLE的意义是什么?全部内容,希望文章能够帮你解决自定义UUID在IOS示例中对BLE的意义是什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)