我有一个连接到蓝牙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?
答案 0 :(得分:0)
您需要检查特征的properties
属性。您正在寻找CBCharacteristicPropertyWrite
。
另外,您是否完全确定外围设备支持2A00
?尝试使用应用程序LightBlue浏览所有可用的服务和特性。