我是iOS开发的新手,并为IOS研究 Bluetooth Low Energy (BLE, Bluetooth 4.0)
。
我研究了此链接的示例代码BTLE Central Peripheral Transfer。
此链接中还有另一个类似的示例iOS 7 SDK: Core Bluetooth - Practical Lesson
以上两个链接上的应用程序在send and receive the text data
的两个IOS设备之间讨论BLE
。
应用可以选择central
或Peripheral
,central
将接收Peripheral
发送的文字数据。
它像UUID
中的以下代码一样定义 header file
。
#define TRANSFER_CHARACTERISTIC_UUID @"08590F7E-DB05-467E-8757-72F6FAEB13D4"
在 Central
连接到 Peripheral
之后,它会发现 Peripheral
。
如果 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.
}
如下面的代码。
The question is like the following:
First Question:
UUID:@"08590F7E-DB05-467E-8757-72F6FAEB13D4"
我在Bluetooth Development Portal中找不到此 uuidgen
。
这是由 terminal
中的 The second Question:
创建的吗?
Central
如果我 characteristic
,并且我使用 setNotifyValue:YES
订阅了 Central
像上面的代码。
BLE会告诉 Peripheral
通过以下代码从 - (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
发送新数据,概念是否正确?
{{1}}
我是IOS开发和BLE的新手。
提前致谢。
答案 0 :(得分:7)
第一个问题:
uuidgen
生成这些UUID。蓝牙SIG未对128位UUID进行标准化,您可以使用这些UUID运行自己的配置文件。第二个问题:
setNotifyValue:YES
。从现在开始,您将通过[-CBPeripheralDelegate didUpdateValueForCharacteristic:error:]
接收来自外围设备的通知。手动读取特征时将调用相同的回调(无法区分读取响应和核心蓝牙中的通知)。