iOS CoreBluetooth CBErrorDomain=8,同时尝试实现HID规范

pod7payv  于 2023-03-24  发布在  iOS
关注(0)|答案(2)|浏览(213)

我一直收到

Error Domain=CBErrorDomain Code=8 "The specified UUID is not allowed
for this operation." UserInfo={NSLocalizedDescription=The specified
UUID is not allowed for this operation.}

尝试实现此页上列出的服务时https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.human_interface_device.xml
我找不到任何关于什么是错误的意思超出上述简短描述的信息.错误发生时,我试图开始做广告,所以它不给予任何洞察是否其服务本身或特征之一.
错误的含义是什么?我可以做些什么来纠正它?
我在一个相关的问题中找到了这个片段:
请注意,苹果确实阻止iOS应用程序通过GATT发布HID,但我认为OS X上不存在这种限制。
所以我希望这不是真的。
我要补充的是,当我试图将上述规范中列出的描述符添加到特性中时,我得到了内部一致性错误,我认为这很奇怪。
我逐一检查并删除了这些特征,直到错误消失。这些是有问题的特征UUID:

uuid: "2A4A", // HID Information
uuid: "2A33", // Boot Mouse Input Report
uuid: "2A4B", // Report Map
uuid: "2A4D", // Report 
uuid: "2A4E", // Protocol Mode

根据HID规范,我将这些特性添加到UUID为1812的服务中。

olhwl3o2

olhwl3o21#

所以看起来苹果确实阻止了HID服务在充当外设的iPhone上工作。我使用LightBlue创建了一个测试外设,它只会在不使用HID 0x1812 UUID的情况下做广告。这非常令人不安。

0vvn1miw

0vvn1miw2#

我们也遇到了这个问题。Apple阻止了iOS甚至macOS上的一些标准化BLE服务(特别是GATT上的HID)。我们不得不基于Nordic Semiconductor NRF51芯片组构建自己的BLE设备来克服这些限制。我可以说,不太理想...

相关问题