2017-06-16 207 views
1

我不斷收到的iOS CoreBluetooth CBErrorDomain = 8,而試圖實現HID規範

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 

我加入這些特徵的服務與UUID 1812年,按照該HID規範。

回答

2

因此,看起來蘋果禁止在充當外設的iPhone上使用HID服務。我使用LightBlue創建一個測試外設,它只會在不使用HID 0x1812 UUID時發佈廣告。這非常令人不安。

1

我們也偶然發現了這個問題。蘋果阻止某些iOS和MacOS的,甚至(在GATT特別是HID)標準化BLE的服務。爲了克服這些限制,我們必須建立我們自己的基於北歐半導體NRF51芯片組的BLE器件。不到理想的我可以說...