HID服务不可见
问题描述:
我正在通过BLE连接到设备的Swift应用程序(iOS)。HID服务不可见
我写了一些代码,设法连接到我的设备,设法获取广告数据,但是当我使用didDiscoverServices方法扫描服务时,我只获取电池和设备信息服务,而不是HID服务。 我可以在广告数据中看到Device信息,Battery和HID服务,但不能在didDiscoverServices方法中看到。 我可以访问didDiscoverServices方法中电池和设备信息的特征。 我在多个地方阅读过HID由iOS管理,而不是由应用管理。
有什么方法可以访问HID服务吗?
答
不幸的是,无法访问此服务。 Apple会主动过滤某些BLE服务,因此您无法通过CoreBluetooth API访问它们。特别是,GAT服务的HID由系统维护,因此您可以使用设备输入文字等,但是您将无法拦截应用中的任何事件。
上述过滤也适用于外设角色。如果您试图通过Gatt UUID将HID添加为CBPeripheralManager的新服务,您将会收到错误消息。