gpt4 book ai didi

swift - 外设 didDiscoverCharacteristicsfor 服务中不允许使用 UUID

转载 作者:行者123 更新时间:2023-11-30 12:18:35 25 4
gpt4 key购买 nike

我正在尝试使在不同设备上运行的两个程序通过 CoreBluetooth 进行蓝牙通信。我可以从管理器找到并连接外围设备,并且可以浏览连接的外围设备中的服务,但是当我尝试发现特征时,出现错误此操作不允许指定的 UUID。正如预期的那样,服务的特征为零。

这是什么意思?我试图发现指定目标 UUID 和不指定目标 UUID 的特征,两者都会显示此错误。

这是打印错误的函数。

func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) {
print(error.localizedDescription)//prints "The specified UUID is not allowed for this operation."
if service.characteristics != nil {
for characteristic in service.characteristics! {
if characteristic.uuid == CBUUID(string: "A4389A32-90D2-402F-A3DF-47996E123DC1") {
print("characteristic found")
peripheral.readValue(for: characteristic)
}
}
}
}

这是我寻找外围设备的地方。

    func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?) {
if peripheral.services != nil {
for service in peripheral.services! {
if service.uuid == CBUUID(string: "dc495108-adce-4915-942d-bfc19cea923f") {
peripheral.discoverCharacteristics(nil, for: service)
}
}
}
}

这就是我在其他设备上添加服务特征的方法。

service = CBMutableService(type: CBUUID(string:"dc495108-adce-4915-942d-bfc19cea923f"), primary: true)
characteristic = CBMutableCharacteristic(type: CBUUID(string: "A4389A32-90D2-402F-A3DF-47996E123DC1"), properties: .write, value: nil, permissions: .writeable)
service.characteristics = [characteristic]

我尝试了多种不同的属性和权限组合(包括 .read/.read),但得到了相同的错误。

最佳答案

您正在尝试读取已设置为只写的特性的值,因此 Core Bluetooth 会给您一个错误; 读取操作对于指定的特征无效。

如果您希望您的特性既可读又可写,您需要指定:

service = CBMutableService(type: CBUUID(string:"dc495108-adce-4915-942d-bfc19cea923f"), primary: true)
let characteristic = CBMutableCharacteristic(type: CBUUID(string: "A4389A32-90D2-402F-A3DF-47996E123DC1"), properties: [.write, .read], value: nil, permissions: [.writeable, .readable])
service.characteristics = [characteristic]

关于swift - 外设 didDiscoverCharacteristicsfor 服务中不允许使用 UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45096135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com