我正在开发一个通过BLE连接到设备的Swift应用程序(iOS)。
我写了一些代码,设法连接到我的设备,设法获得广告数据,但当我使用didDiscoverServices方法扫描服务时,我只得到电池和设备信息服务,而不是HID服务。我可以在通告数据中看到设备信息、电池和HID服务,但在didDiscoverServices方法中看不到。我可以在didDiscoverServices方法中访问电池的特性和设备信息。我在很多地方读到过HID是由iOS管理的,而不是由应用程序管理的。
有什么方法可以访问HID服务吗?
发布于 2017-08-17 22:00:27
不幸的是,没有办法访问此服务。苹果会主动过滤某些BLE服务,因此您无法通过CoreBluetooth应用程序接口访问它们。特别是,HID over Gatt服务由系统维护,因此您可以使用设备输入文本等,但您将无法拦截应用程序中的任何事件。
前述过滤也适用于外围角色。如果您尝试通过Gatt UUID将HID作为新服务添加到CBPeripheralManager中,您将得到一个错误。
https://stackoverflow.com/questions/45737000
复制相似问题