Android系统定制之监听USB键盘来判断是否弹出软键盘

一.项目背景

在设备上弹出软键盘,会将一大部分UI遮挡起来,造成很多图标无法看到和点击,使用起来不方便,因此通过插入usb键盘输入代替软键盘,但是点击输入框默认会弹出软键盘,因此想要插入USB键盘时,默认关闭软键盘,拔出键盘时再弹出,方便用户使用

二.设计思路

2.1 首先我们需要监听USB键盘的插拔
系统中可以通过监听USB设备插拔状态,来监听USB键盘的插拔,

2.2但是由于USB设备有很多种,那么如何区分是USB键盘还是U盘还是其他的USB设备呢?
在UsbInterface中有一个InterfaceClass来区分 USB的一些基本类型
Android系统定制之监听USB键盘来判断是否弹出软键盘_第1张图片
但是可以看到这些类型无法准确区分是否是keyboard设备,USB设备多种多样,因此我们还需要能够准确判断此时是一个keyBoard设备,
我们又知道keyboard设备属于input 设备,因此我们再借助input设备同时限制,
在系统InputDevice中Source类型为我们提供了准确的SOURCE_KEYBOARD的类型判断
让我们能够正确的知道此时的input设备是否支持键盘

你可能感兴趣的:(Android系统定制,android,USB,input,keyboard,java)