写peripheral.name Xcode

时间:2014-02-17 16:42:44

标签: bluetooth core-bluetooth

我有一个连接到蓝牙LE外设的应用程序。是否可以从应用程序更改外围设备的名称。换句话说,我想从中央设备重写外围设备本地化名称。我可以通过广告数据获取名称,只有具有特定名称才能连接到外围设备。但我希望用户能够更改外围设备的名称,这样只有他们才能从应用程序连接到该特定外围设备。

我不确定我的外围设备是否允许。我该如何检查?如何编写新名称?

我使用以下代码获取服务设备信息,然后获取制造商名称

if([service.UUID isEqual:[CBUUID UUIDWithString:@"180A"]]) {
    for (CBCharacteristic *characteristic in service.characteristics) {
        NSLog(@"discovered characteristic %@", characteristic.UUID);
        if([characteristic.UUID isEqual:[CBUUID UUIDWithString:@"2A29"]]) {
            NSLog(@"Found Notified Characteristic %@", characteristic);
            self.mycharacteristic2 = characteristic;
            [self.testPeripheral setNotifyValue:YES forCharacteristic:characteristic];
            [self.testPeripheral readValueForCharacteristic:mycharacteristic2];
            NSLog(@"value:%@",mycharacteristic2.value);

        }
    } NSLog(@"services%@",service);}

但是,如果我替换2A00(它应该是设备名称的UUID),我什么也得不到。

我还尝试使用1800进行通用访问,使用1801进行通用信息,但我没有得到任何设备名称2A00的响应。

我得到一个日志,1801是设备信息,但没有2A00的信息,它应该是设备名称。有谁知道如何访问设备名称特征UUID?

1 个答案:

答案 0 :(得分:0)

您需要检查特征的properties属性。您正在寻找CBCharacteristicPropertyWrite

另外,您是否完全确定外围设备支持2A00?尝试使用应用程序LightBlue浏览所有可用的服务和特性。