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 ...
最新文章
- 学习《Linux设备模型浅析之设备篇》笔记(深挖一)
- 数据可视化应用案例:麦当劳和肯德基全国门店分布,谁才是分布最广的炸鸡店?
- Twitter的分布式自增ID算法Snowflake实现分析及其Java、Php和Python版
- 请按正确方法给UPS电源充电
- ABAP 标准培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号
- Jersey WebResource –标头不附加
- python123添加列表元素_Python之列表
- CCNA之三:RIP协议
- Tapestry5之页面显示
- 什么是软件项目验收,软件项目验收测试方法分享
- 自定义函数 | 批量计算微生物群落的alpha多样性
- Java基础之《JDK文档》
- Oracle 11g安装报错
- windows密钥查看器ProduKey1.82汉化
- 相机选型与远心镜头选型
- oracle禁用amm,[20180211]11g关闭AMM.txt
- 轮询调度算法(Round-Robin Scheduling)
- Python(Tuirtle库)绘制五星红旗详细画法
- 妙赞大讲糖:糖尿病患者的手术风险有多大
- 【Java程序设计】实验七 网络通信