Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 蓝牙LE can';t将数据从中央发送到外围设备_Ios_Bluetooth_Bluetooth Lowenergy - Fatal编程技术网

Ios 蓝牙LE can';t将数据从中央发送到外围设备

Ios 蓝牙LE can';t将数据从中央发送到外围设备,ios,bluetooth,bluetooth-lowenergy,Ios,Bluetooth,Bluetooth Lowenergy,我正在处理蓝牙低能量的问题。我用iPhone找到了我的外围设备,连接到它,还找到了服务和处于写入模式的特性。但当我尝试发送一些数据时,什么也没有发生-设备没有接收任何东西,并且也没有调用-(void)peripheral:(CBPeripheral*)peripheral didUpdateValueForCharacteristic:(CBCharacteristic*)characteristic error:(NSError*)error 我的writeValue方法如下: -(void)

我正在处理蓝牙低能量的问题。我用iPhone找到了我的外围设备,连接到它,还找到了服务和处于写入模式的特性。但当我尝试发送一些数据时,什么也没有发生-设备没有接收任何东西,并且也没有调用
-(void)peripheral:(CBPeripheral*)peripheral didUpdateValueForCharacteristic:(CBCharacteristic*)characteristic error:(NSError*)error

我的writeValue方法如下:

-(void) writeValue:(int)serviceUUID characteristicUUID:(int)characteristicUUID p:(CBPeripheral *)p data:(NSData *)data {

    CBUUID *UUIDService = [CBUUID UUIDWithString:[NSString stringWithFormat:@"%@",TRANSFER_SERVICE_UUID]];
    CBUUID *UUIDCharacteristic = [CBUUID UUIDWithString:[NSString stringWithFormat:@"%@",TRANSFER_CHARACTERISTIC_UUID]];

    NSLog(@"ALERT");
    CBService *service = [self findServiceFromUUID:UUIDService p:p];
    if (!service)
        {
            NSLog(@"Could not find service with UUID %@ on peripheral with UUID %@",
                  [self CBUUIDToString:UUIDService],
                  p.identifier.UUIDString);

            return;
        }

    CBCharacteristic *characteristic = [self findCharacteristicFromUUID:UUIDCharacteristic service:service];
    if (!characteristic)
    {
        NSLog(@"Could not find characteristic with UUID %@ on service with UUID %@ on peripheral with UUID %@",
              [self CBUUIDToString: UUIDCharacteristic],
              [self CBUUIDToString:UUIDService],
              p.identifier.UUIDString);

        return;
    }

    NSString *message = @"AB";
    NSData *dataMsg= [message dataUsingEncoding:NSUTF8StringEncoding];

    [p writeValue:dataMsg forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse];

}
有什么问题吗?

试试这个。斯威夫特3 此代码用于启用CBCharacteristic的notify(0x12用于notify属性)

试试这个。斯威夫特3 此代码用于启用CBCharacteristic的notify(0x12用于notify属性)


是否调用了
外围设备:didWriteValueForCharacteristic:错误:
findCharacteristicFromUUID:
?不,
外围设备:didWriteValueForCharacteristic:error:
也不被调用
findCharacteristicFromUUID:
只需检查我编写的UUID是否与服务的特征之一相同:`-(CBCharacteristicFromUUID:(CBUUID*)UUID服务:(CBService)服务{for(int I=0;I外围设备:didWriteValueForCharacteristic:error:?从UUID:中查找到什么特征?
外围设备:didWriteValueForCharacteristic:error:
也不被调用。
findCharacteristicFromUUID:
只是检查我编写的UUID是否与服务的特征之一相同:`-(CBCharacteristic)findCharacteristicFromUUID:(CBUUID*)UUID服务:(CBService)服务{for(int I=0;Ifunc peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) { for newChar: CBCharacteristic in service.characteristics!{ peripheral.readValue(for: newChar) if newChar.properties.rawValue == 0x12{ peripheral.setNotifyValue(true, for: newChar) } } }