Android 获取USB输入设备信息/区分虚拟键盘和外接键盘输入
Android 获取USB等多个输入设备信息-InputDevice
Activity内的onKeyDown函数可以捕获输入设备的输入,但是如果android接了多个usb或者其他接口的输入设备,这时候,怎么获取不同输入设备的信息呢?如果能获取到这个输入设备的信息,我们就可以区分不同的输入设备来响应不同的事件。
所以翻了一KeyEvent这个类,查看了里面的方法,发现有这么一个类InputDevice
InputDevice这个对象有两种获取方式
//第一种
InputDevice inputDevice = InputDevice.getDevice(event.getDeviceId());
//第二种 通过InputManager获取
InputManager inputManager = (InputManager)getSystemService(Context.INPUT_SERVICE);
InputDevice inputDevice = inputManager.getInputDevice(event.getDeviceId());
//不过都需要获取到DeviceId的前题 如果不在onKeyDown这个接口里呢?
//我们可以通过InputManager获取到当前的所有设备的DeviceId
int[] inputDeviceIds= inputManager.getInputDeviceIds();
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (event.getDeviceId() == KeyCharacterMap.VIRTUAL_KEYBOARD) {//如果是虚拟键盘则不截获输入事件return false;}InputDevice inputDevice = InputDevice.getDevice(event.getDeviceId());Log.e("key", "onKeyDown: InputDevice:name=" + inputDevice.getName()+",productId="+inputDevice.getProductId()+",VendorId="+ inputDevice.getVendorId());Log.e("key", "onKeyDown: keyCode=" + keyCode + "String=" + KeyEvent.keyCodeToString(keyCode));//监听键盘以及二维码输入return true;//截获事件}
以上就是在onKeyDown这个接口里获取输入设备信息的方法,有了设备信息,区分判断就是很简单的事情了
Android 获取USB输入设备信息/区分虚拟键盘和外接键盘输入相关推荐
- Android获取USB设备信息
一.通过路径查询 cat /proc/bus/input/devices 二.使用UsbManager获取插入手机的USB设备名字 private void getDevice() {UsbManag ...
- 基于WMI获取USB设备信息(即获取插即用设备信息)System.Management.ManagementObjectSearcher--ManagementObjectCollection
基于WMI获取USB设备信息(即获取插即用设备信息)System.Management.ManagementObjectSearcher--ManagementObjectCollection 获取P ...
- Android 获取设备各种信息以及其它
做手机开发,想必都希望获取手机号码吧,android中有一个类android.telephony.TelephonyManager提供这个功能. TelephonyManager tm = (Tele ...
- C# 获取USB设备信息
WMI方式 using System; using System.Management; using System.Text.RegularExpressions; using System.Coll ...
- Android获取歌曲详细信息
Android获取歌曲详细信息 一.目标 二.实现方案 三.HTML方案 四.JSON方案 五.接下来 六.Finally 在<Android实现歌词笔记构思>时,构思了如何在笔记中添加歌 ...
- Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)
Android获取设备各项信息(设备id.ip地址.APP应用名称.设备名称.运行商.品牌.型号.分辨率.处理器.国家码.系统语言.网络类型.oaid.android版本.操作系统版本.mac地址.应 ...
- Android -- 获取设备硬件信息
Android – 获取设备硬件信息 通过 Build 获取指定字段信息: 信息 方法 例子 主板 Build.BOARD PAR 系统定制商 Build.BRAND HUAWEI 硬件名称 Buil ...
- win键失效(笔记本自带键盘和外接键盘)
环境:Win10系统 设备:华为笔记本电脑MateBook D 问题:笔记本自带键盘以及外接键盘的其他按键都确认没有其他的问题,只是Win键失效了 解决步骤: (1)笔记本自带键盘 先确认下是不是键盘 ...
- Android 获取SIM卡信息
android 获取sim卡运营商信息 TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TELEPHO ...
最新文章
- 查看网页js数据接口
- iphone日历怎么跳转日期_晚上别调手表日期!手表调节日历的禁区!
- Python-GUI PyQT5案例:注册界面窗体设计(含扇形菜单)
- WindowsXP正版验证方法
- xilinx7中管脚mrcc和srcc_Xilinx 7系列FPGA架构之SelectIO结构(一)
- Java虚拟机专题之字节码指令(读书笔记)
- Linux下端口占用解决方法
- Xstream-1 原理
- Cesium:在地球上加载Geoserver图层
- 【strtok()】——分割字符串
- matlab 直方图(柱状图) 及 CDF曲线
- MacBook重启之后,外接显示器不亮的解决方法
- python re search match_简诉Python Re模块中re.search和re.match的区别
- 2022 世界人工智能大会,都讲了些啥?
- 2019联想创新科技大会:“端边云网智”一切就绪
- #includeiomanip
- 有8匹马,只有四个赛道,如何挑出前三名?
- Mac 上无法使用brew安装软件问题处理记录
- 实用防火与防爆技术培训---第一讲 燃烧的类型和特征(上)
- c语言典型编程题北理,c++经典编程题