繁体   English   中英

iOS CoreBluetooth不太可能出现错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM