【发布时间】:2017-11-10 13:43:40
【问题描述】:
我有一个带有几个按钮的蓝牙 LE 操纵杆。我想不使用蓝牙设置直接将它连接到应用程序,而是通过BluetoothLeScanner 连接到它。
我已经可以连接到心率监测器并定期收到心率值通知。
我还创建了一个带有 ESP32 的小型温度/光/湿度传感器,我还可以连接到该传感器并在应用程序中显示传感器值。
我对这款 HID 设备的理解可能有误。在 App BLE Scanner 的帮助下,我可以通过 BLE 连接到这个小工具并查看提供的服务。
其中一个是0x1812 HUMAN INTERFACE DEVICE,其中包含REPORT 类型的几个特征,其中描述了HID OVER GATT PROFILE SPECIFICATION (HOGP_SPEC)
我怎样才能知道按下了哪个按钮,操纵杆移到了哪个位置?我想这必须通过我必须订阅的通知来实现。
是否有任何可用于处理 HID 输入设备的 Android 库?我不想做的是使用蓝牙设置并连接到设备并将其检测为 HID 设备并用一些奇怪的映射替换键盘。我根本不希望操作系统参与进来,就像我连接和使用 HRM 和 ESP32 时一样。
我找不到这方面的任何信息。
我可以使用我的应用程序连接到设备,列举服务和特征。但从那时起,我不知道如何使用 HID。理想情况下,我会收到诸如“按钮 A 已被按下”“操纵杆已移至 x=32”之类的通知,其中 x 的范围为 -127 到 127,例如。
【问题讨论】:
-
不管怎样,一个朋友中风了,现在几乎不能说话。我期待创建一个可以通过 10 美元的多按钮/操纵杆 BLE 设备轻松控制的应用程序。将是开源的。
-
Daniel 做得很好,按下按钮时设备是否通过任何类型的确认
-
没有。连接后,我会“订阅”
onServicesDiscovered中报告特征的通知。但我从未从设备收到任何其他信息,onCharacteristicChanged不会在按下按钮时被调用。我正在阅读github.com/kshoji/BLE-HID-Peripheral-for-Android/blob/master/…,以尝试了解 HID 设备的行为方式。也许我需要以某种方式绑定它。 -
你也许应该做一个 GATT 服务器连接?也许下一个答案应该可以帮助您咬一口:stackoverflow.com/questions/55680180/…
标签: android bluetooth bluetooth-lowenergy hid