当前位置: 首页 > news >正文

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

一.项目背景

在设备上弹出软键盘,会将一大部分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.lryc.cn/news/185756.html

相关文章:

  • LeakyReLU激活函数
  • Qt单一应用实例判断
  • 企业AI工程化之路:如何实现高效、低成本、高质量的落地?
  • 最短路径专题8 交通枢纽 (Floyd求最短路 )
  • 文件扫描模块
  • MySQL之主从复制
  • [leetcode 单调栈] 901. 股票价格跨度 M
  • Java线程池:并发编程的利器
  • ARM硬件断点
  • Java使用WebSocket(基础)
  • 图像处理与计算机视觉--第五章-图像分割-自适应阈值分割
  • 记一次问题排查
  • 【Spring Boot】创建一个 Spring Boot 项目
  • flutter中使用缓存
  • 京东数据分析平台:9月中上旬白酒消费市场数据分析
  • Linux安装 spark 教程详解
  • 动态内存管理函数(malloc,calloc,realloc,free)
  • 云表|都有生产管理模块,MES和ERP有什么不同,该如何选择
  • C语言 - 数组
  • Vue 中的插槽(Slot),有什么用,不同插槽的区别?
  • Linux登录自动执行脚本
  • 架构方法、模型、范式、治理
  • Linux 安全 - 内核提权
  • 数字三角形加强版题解(组合计数+快速幂+逆元)
  • MySQL:主从复制-基础复制(6)
  • 盒子模型的基础
  • Go复合类型之数组类型
  • rust闭包
  • 通过位运算,实现单字段标识多个状态位
  • ALSA pcm接口的概念解释