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

news/2024/11/28 15:45:03/

一.项目背景

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

二.设计思路

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

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


http://www.ppmy.cn/news/1141127.html

相关文章

Linux驱动调试:增加文件节点属性

在调试linux驱动的时候,经常需要用户层和内核态进行交互,比较常用的方法是ioctl和文件节点,这里介绍一下在设备驱动增加文件节点的常见方法。 (1)module_param方式 可以在驱动使用函数module_param来设置参数&#x…

Clickhouse常用函数总结

目录 1. 算术函数2. 比较运算3. 逻辑函数4. 数组函数5. 时间日期函数6. 字典函数7. Nullable处理函数8. IP函数9. 字符串拆分合并函数10. 字符串函数11. 字符串替换函数12. 聚合函数参考文献 原文地址:https://program-park.top/2023/09/26/clickhouse_17/ 1. 算术函…

JavaEE-文件IO操作

构造方法 一般方法,有很多,我们以下只是列举几个经常使用的 注意在上述的操作过程中,无论是绝对路径下的这个文件还是相对路径下的这个文件,都是不存在的 Reader 使用 --> 文本文件 FileReader类所涉及到的一些方法 Fil…

性能监控-链路级监控工具

常见的链路监控工具,我们都称之为 APM 开源工具 几个开源的好用的工具,它们分别是 Pinpoint、SkyWalking、Zipkin、CAT 网络上也有人对这几个工具做过测试 比对,得到的结论是每个产品对性能的影响都在 10% 以下,其中 SkyWalking …

Java练习题-用冒泡排序法实现数组排序

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:Java练习题 💬个人格言:不断的翻越一座又…

自学接口测试系列 —— 自动化测试用例设计基础!

一、接口测试思路总结 ❓首先我们在进行接口测试设计前思考一个问题:接口测试,测试的是什么? ❗我们必须要知道,接口测试的本质:是根据接口的参数,设计输入数据,验证接口的返回值。 那么接口…

我在 NPM 发布了新包: con-colors

链接地址:npmjs.com con-colors 安装依赖 yarn add con-colors使用 导入: import { print } from "con-colors";使用: print.succ("成功的消息"); print.err("失败的消息")例子: import { p…

宏任务队列和微任务队列

setTimeout(function() {console.log(1); }, 0);new Promise(function (resolve, reject) {resolve(2); }).then(console.log);console.log(3); // 3 // 2 // 1关于微任务(Promise中的then回调)为什么早于宏任务(setTimeout)的执行…