0

早上好,我是 Pavan,我对 corebluetooth 有疑问。我正在使用蓝牙 LE 设备。我在目标 c 中使用核心蓝牙框架中编写了示例代码,我得到了蓝牙名称、UUID、RRSI 值。我使用了中央管理器、外围管理器和外围委托方法。我的代码不执行 CBPeripheralManager 委托方法。它只给出一个 UUID kCBAdvDataServiceUUIDs = "00001C00-D102-11E1-9B23-00025B00A5A5",无法获得剩余的服务。

在这里,我需要获取警报设置、更好的级别、日期和时间设置。我使用了您的示例项目,得到了以下结果。找到具有名称的外设:可选(“名称”)

UUID: 48D98C88-4FAC-A584-839D-D06D953B941D
RSSI: -71
Advertisement Data: ["kCBAdvDataServiceUUIDs": (
    "00001C00-D102-11E1-9B23-00025B00A5A5"
), "kCBAdvDataTxPowerLevel": 8, "kCBAdvDataIsConnectable": 1]

无法与外围设备断开连接并出现错误:Error Domain=CBErrorDomain Code=7 "The specified device has disconnected from us." UserInfo=0x165d4000 {NSLocalizedDescription=The specified device has disconnected from us.}

周边:

我无法得到问题所在。请帮我。

我们在这里尝试了代码:http ://www.filedropper.com/btbackground-master

4

1 回答 1

0

你能解释一下你的问题吗?你说它只给出一个 UUID kCBAdvDataServiceUUIDs = "00001C00-D102-11E1-9B23-00025B00A5A5"

这是服务 UUID 的广告数据,它返回服务 UUID 的不完整列表并由外围设备管理。

要获取服务 UUID 的完整列表,您必须在使用 discoverServices 连接到外围设备后发现它们

看来你这样做了:

[peripheral discoverServices:@[[CBUUID UUIDWithString:@"0x1811"]]];

它只会发现具有 0x1811 UUID 的服务。如果你想发现你必须调用的所有服务

[peripheral discoverServices:nil];

与外围设备断开连接失败似乎是外围设备方面的问题。它只是告诉您它无法断开连接,因为外围设备已经断开了您的设备。

无论如何,您的问题是断开错误还是服务发现?因为从你的问题中不清楚。

于 2015-10-29T14:48:45.330 回答