所以我有2个iOS设备:一个是Peripheral,另一个是Central . 我希望数据是图像 . 我尝试了一个字符串值,它工作正常,但有图像我得到这个错误:“read_user_chunkIDOT:1221:无效的PNG文件:没有有效的iEnd块”,我也可以看到字节是不同的(可选(526字节) ),当我得到它们时它们会更大 .
这是外围设备:
if let img = UIImage(named: "maiden") {
let data = UIImagePNGRepresentation(img)
let base64 = data?.base64EncodedData(options: .lineLength64Characters)
let char = CBMutableCharacteristic(type: CHAR_UUID, properties: [.read], value: base64!, permissions: [.readable])
let myRoei = CBMutableService(type: RX_UUID, primary: true)
myRoei.characteristics = [char]
cameraPeripheralManager.add(myRoei)
cameraPeripheralManager.startAdvertising([CBAdvertisementDataServiceUUIDsKey:[RX_UUID], CBAdvertisementDataLocalNameKey: advertisementData])
}
这是Central里面的didUpdateValueFor特性:
print(characteristic.value as Any)
switch characteristic.uuid {
case CHAR_UUID:
let image = UIImage(data: Data(base64Encoded: characteristic.value!, options: .ignoreUnknownCharacters)!)
self.imageView.image = image
_ = bodyLocation(from: characteristic)
case RX_UUID: break
// onHeartRateReceived(bpm)
default:
print("Unhandled Characteristic UUID: \(characteristic.uuid)")
}
想知道我哪里错了 . 提前致谢!
1 Answer
所以我用这段代码管理了这样做: