解决安卓tv 蓝牙遥控器配对后输入法弹不出来的问题

t972在蓝牙配对后,自带的LatinIME 输入法会出现弹不出来的现象。

经过分析,主要为蓝牙的kl 文件适配存在问题。解决如下:

1.新建 kl文件  这个需要结合选用的遥控器来设定名称,我这边的遥控器是按照如下配置的   Vendor_2b54_Product_1600.kl 放到 /vendor/usr/keylayout/下

内容:

#for bl remote add by jason 20240709

key 113 VOLUME_MUTE 0x71

key 103 DPAD_UP 0x67

key 108 DPAD_DOWN 0x6C

key 105 DPAD_LEFT

key 106 DPAD_RIGHT

key 28 DPAD_CENTER

key 158 BACK

key 139 MENU

key 172 HOME

key 114 VOLUME_DOWN

key 115 VOLUME_UP

key 402 CHANNEL_UP

key 403 CHANNEL_DOWN

key 60 F2

2. 修改 vim common/drivers/hid/hid-input.c 中的键 对调下

修改后 :

--------知识点说明

从以上流程上可以发现,遥控器的码值被转化了几次: HID码值–→Linux event–→ 根据Vendor、Product 所对应的kl文件,最终转化为 Android 事件

通过 getevent 可以拿到其中按键值的详细信息:

参考kernel下的hid.h,此处只列举几个

协议分两种:

一种是 0007类型,根据蓝牙键值(物理键值),纵向横向(0~F)数hid_keyboard[256],找到位置即为Linux键值,搜索Linux键值在input.h中对应的按键名称,然后修改kl文件

一种是 000c类型,在hid-input.c文件的HID_UP_CONSUMER中寻找,case后面的值为对应的蓝牙键值,map_key_clear内的值为对应的按键名称,如果没有就添加映射,如果有,根据按键名称找到input.h中对应的Linux键值,然后用计算器算出对应的十进制数,添加到kl文件

按下ok键

使用 dumpsys input结合【vendor id : product id】找到对应的kl文件


kl 文件对应关系

key 后面为linux的键值,没加0x的 就是10进制显示数值,, 再后面为安卓的部分,这部分 直接参考 Generic.kl中的

比如enter键 用getevent 查看 Linux键值为 0x1c 换算为10进制 即28 ,对应上面这个kl文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/376578.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初步探究Rust生态与图形界面编程

引言 Rust作为一种现代的、安全的系统编程语言,自2010年问世以来,逐渐在开发社区中崭露头角。它的内存安全保证、并发处理能力、以及无需垃圾回收机制的高性能特性,使得它成为了开发系统工具、网络服务、以及嵌入式系统的热门选择。然而&…

8-1 搭建solidity开发环境,自己定制一个truffle

8-1 搭建solidity开发环境,自己定制一个truffle(react区块链实战) 从零开始搭建一个项目 自己实现一套类似truffle的自动编译系统,加深理解 此处可以跳过无需自己实现编译合约的模块,使用已有的truffle模块即可 项目…

【JavaScript】解决 JavaScript 语言报错:Uncaught SyntaxError: Unexpected token

文章目录 一、背景介绍常见场景 二、报错信息解析三、常见原因分析1. 缺少必要的语法元素2. 使用了不正确的字符或符号3. JSON 格式错误4. 字符串未正确闭合 四、解决方案与预防措施1. 检查语法元素2. 正确使用符号和字符3. 修正 JSON 格式4. 字符串闭合 五、示例代码和实践建议…

go 切片进行链式操作并支持泛型

背景: 由于团队不是专业级别的go开发人员,主开发还是java,用惯了java的lambda表达式特别是流式操作, 所以在用go语言时,发现切片处理起来比较麻烦,看看能不能支持类似流式操作,我这边就研究了下…

PDF公式转Latex

文章目录 摘要数据集 UniMER介绍下载链接 LaTeX-OCRUniMERNet安装UniMER 用的数据集介绍下载链接 PDF-Extract-Kit整体介绍效果展示评测指标布局检测公式检测公式识别 使用教程环境安装参考[模型下载](models/README.md)下载所需模型权重 在Windows上运行在macOS上运行运行提取…

ESP-IDF升级到V5.2.x碰到的问题,lvgl移动v9.x。

近日在学习IDF,将原有IDF代码,升级到IDF 5以上时。发现一些API的变化,具体如下(今后碰到再继续补充): 一、官网上找到部分。截图如下 二、网上找到部分 The fixes I attempted which got the file to compile: replace gpio_pad_select_gpio() with gpio_pin_reset()re…

Ubuntu 安装搜狗输入法

搜狗输入法已支持Ubuntu1604、1804、1910、2004、2010 各系统安装步骤可能略有不同 1、添加中文语言支持 打开 系统设置——区域和语言——管理已安装的语言——在“语言”tab下——点击“添加或删除语言” 弹出“已安装语言”窗口,勾选中文(简体&…

Linux vim文本编辑器

Vim(Vi IMproved)是一个高度可配置的文本编辑器,它是Vi编辑器的增强版本,广泛用于程序开发和系统管理。Vim不仅保留了Vi的所有功能,还增加了许多新特性,使其更加强大和灵活。 Vim操作模式 普通模式&#xf…

机器学习——L1 L2 范数 —>L1 L2正则化

1、L1范数和L2范数是机器学习和数据分析中经常使用的两种范数,它们之间存在多个方面的区别。 以下是关于L1范数和L2范数区别的详细解释: 一、定义差异 L1范数:也被称为曼哈顿范数,是向量元素的绝对值之和。对于一个n维向量x&am…

【密码学】实现消息认证或数字签名的几种方式

消息认证的目的是验证消息的完整性和确认消息的来源。数字签名的目的是不仅验证消息的完整性和来源,还提供了不可否认性。此外,数字签名还可以验证消息的创建时间,防止重放攻击。那么具体有哪些实现的方式呢? 一、仅提供消息认证…

YOLOv10改进 | 损失函数篇 | SlideLoss、FocalLoss、VFLoss分类损失函数助力细节涨点(全网最全)

一、本文介绍 本文给大家带来的是分类损失 SlideLoss、VFLoss、FocalLoss损失函数,我们之前看那的那些IoU都是边界框回归损失,和本文的修改内容并不冲突,所以大家可以知道损失函数分为两种一种是分类损失另一种是边界框回归损失,…

如何使用HTML和JavaScript读取文件夹中的所有图片并显示RGB范围

如何使用HTML和JavaScript读取文件夹中的所有图片并显示RGB范围 在这篇博客中&#xff0c;我将介绍如何使用HTML和JavaScript读取文件夹中的所有图片&#xff0c;并显示这些图片以及它们的RGB范围。这个项目使用现代浏览器提供的<input type"file" webkitdirecto…

k8s字段选择器

文章目录 一、概述二、基本语法三、支持的字段1、错误示例2、支持的字段列表 四、支持的操作符1、示例 五、跨多种资源类型使用字段选择器 一、概述 在Kubernetes中&#xff0c;字段选择器&#xff08;Field Selectors&#xff09;和标签选择器&#xff08;Label Selectors&am…

【目标检测】使用自己的数据集训练并预测yolov8模型

1、下载yolov8的官方代码 地址&#xff1a; GitHub - ultralytics/ultralytics: NEW - YOLOv8 &#x1f680; in PyTorch > ONNX > OpenVINO > CoreML > TFLite 2、下载目标检测的训练权重 yolov8n.pt 将 yolov8n.pt 放在ultralytics文件夹下 3、数据集分布 注…

如何在Linux上如何配置虚拟主机

在Linux上配置虚拟主机可以通过使用Apache HTTP服务器来实现。Apache是一个开源的跨平台的Web服务器软件&#xff0c;可以在多种操作系统上运行并支持虚拟主机的配置。 以下是在Linux上配置虚拟主机的步骤&#xff1a; 安装Apache HTTP服务器 在终端中运行以下命令来安装Apache…

科普文:深入理解Mybatis

概叙 (1) JDBC JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 优点…

怎么用PPT录制微课?详细步骤解析!

随着信息技术的不断发展&#xff0c;微课作为一种新型的教学形式&#xff0c;因其短小精悍、针对性强等特点&#xff0c;在教育领域得到了广泛的应用。而PPT作为一款常用的演示工具&#xff0c;不仅可以用来制作课件&#xff0c;还可以利用其内置的录屏功能或结合专业的录屏软件…

C++:类与对象(上)

目录 一、类的定义 1.1类的定义格式 1.2访问限定符 1.3类域 二、实例化 2.1实体化的概念 2.2类对象的大小 三、this指针 前言&#xff1a; 这篇文章是对类和对象的初步介绍&#xff0c;我将用三篇文章描述类和对象&#xff0c;希望对大家有所帮助 一、类的定义 什么是…

jenkins打包java项目报错Error: Unable to access jarfile tlm-admin.jar

jenkins打包boot项目 自动重启脚本失败 查看了一下项目日志报错&#xff1a; Error: Unable to access jarfile tlm-admin.jar我检查了一下这个配置&#xff0c;感觉没有问题&#xff0c;包可以正常打&#xff0c; cd 到项目目录下面&#xff0c;手动执行这个sh脚本也是能正常…

这可能是最详细的 Dagger2 使用教程 二(限定注解 @Named、@Qulifier 和 范围注解 @Singleton、@Scope)

通过上一篇文章我们知道了 Dagger2 的基本使用&#xff0c;在这篇文章中&#xff0c;我们将讲解 Dagger 中的两个重要概念以及相关注解。 这可能是最详细的 Dagger2 使用教程 一&#xff08;基本使用&#xff09; 类型上再加限定&#xff1a;Named 和 Qulifier 注解的使用 通…