[英]iOS CoreBluetooth unlikely error
我正在研究利用Core Bluetooth的Appcelerator模块。 我可以毫无问题地连接到外围设备,并订阅一个特性。 我隐含了所有委托函数,并且一切似乎都按预期触发,除了尝试读取或写入时遇到“不太可能的错误”。 我的主要方法如下所示。
-(void)readValueForCharacteristicByUUID:(NSString *)uuidstring
{
if (self.connectedService)
{
CBMutableCharacteristic* characteristic = [self characteristicFromUUIDstring:uuidstring];
if (characteristic)
{
[self.connectedPeripheral readValueForCharacteristic:characteristic];
}
} else {
NSLog(@"[INFO] No service to read");
}
}
-(void)writeValue:(NSData*)value ForCharacteristicByUUID:(NSString*)uuidstring
{
if (self.connectedService)
{
CBMutableCharacteristic* characteristic = [self characteristicFromUUIDstring:uuidstring];
if (characteristic)
{
[self.connectedPeripheral writeValue:value forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse];
}
} else {
NSLog(@"[INFO] No service to write to");
}
}
-(CBMutableCharacteristic*)characteristicFromUUIDstring:(NSString*)uuidstring
{
for (CBMutableCharacteristic* c in self.connectedService.characteristics)
{
if ([c.UUID.UUIDString isEqualToString:uuidstring])
{
return c;
}
}
NSLog(@"No Characteristic found with that uuid");
}
我认为这可能是权限问题,因此这是我用于在外围设备中创建特征的代码。
CBMutableCharacteristic* c = [[CBMutableCharacteristic alloc] initWithType:cuuid
properties:CBCharacteristicPropertyRead|CBCharacteristicPropertyWrite|
CBCharacteristicPropertyNotify
value:nil
permissions:CBAttributePermissionsReadable|CBAttributePermissionsWriteable];
来自CBMutableCharacteristic class reference
CBMutableCharacteristic对象表示本地外围设备服务的特征(本地外围设备由CBPeripheralManager对象表示)。
您不能将CBMutableCharacteristic
实例与CBCentralManager
一起使用以与远程外围设备进行通信。
你必须使用CBCharacteristic
返回给周边的peripheral:didDiscoverCharacteristicsForService:error:
委托方法调用后discoverCharacteristics:forService:
所连接的CBPeripheral
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.