Android 蓝牙连接 HID 装备

王柳  金牌会员 | 2024-11-1 23:50:09 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 892|帖子 892|积分 2676

Android 蓝牙连接 HID 装备

我连接的是蓝牙拍照遥控器。
最开始按照网上的思路,以为必要使用 BLE 方式去连接装备,然后接收装备的数据。连接乐成后,一直收不到消息。
最后,机缘巧合下,更换连接方式,使用蓝牙 HID 方式去配对装备,但是没有给出如何收消息。
重写了 dispatchKeyEvent 方法,发现按蓝牙遥控器,有按键回调消息。
原来如许的 HID 装备,我们可以不用自己去连接,直接使用系统的蓝牙连接后,然后在 dispatchKeyEvent 中对按键变乱处理即可。
  1.     private void getDeviceInfo(int id) {
  2.         InputManager im = (InputManager) getSystemService(Context.INPUT_SERVICE);
  3.         InputDevice device = im.getInputDevice(id);
  4.         Log.e("WillWolf", "getDeviceInfo-->" + device.toString());
  5.     }
  6.     @Override
  7.     public boolean dispatchKeyEvent(KeyEvent event) {
  8.         Log.e("WillWolf", "dispatchKeyEvent-->");
  9.         Toast.makeText(this, "按钮点击", Toast.LENGTH_SHORT).show();
  10.                 // 这里通过事件的 device id,可以获取到输入的设备信息,比如我的是绿联的蓝牙遥控器,那么打印的信息中,设备名字就是 UGREEN,可以根据这个对事件来源做区分。
  11.         getDeviceInfo(event.getDeviceId());
  12.                 // 这里的事件来源不一定是 MOUSE 也可能是 SOURCE_KEYBOARD
  13.         if (event.getSource() == InputDevice.SOURCE_MOUSE) {
  14.             Log.e("WillWolf", "dispatchKeyEvent--> SOURCE_MOUSE");
  15.         }
  16.         return true;
  17.     }
复制代码
哎,折腾了半天,才发现原来某些 HID 范例的装备,大概不必要使用 BLE 方式去获取信息。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王柳

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表