网站不接入备案,陕西秦地建设有限公司网站,wordpress播放下载,网站制作多少钱公司海思Android解决方案在原生Android基础上#xff0c;基于传统电视用户使用习惯#xff0c;增加了对红外遥控器和按键板的支持#xff0c;使传统电视用户能更好适应智能电视方案。 一.功能描述#xff1a; 在系统启动时#xff0c;会先启动android_ir_user#xff1b;vinp…海思Android解决方案在原生Android基础上基于传统电视用户使用习惯增加了对红外遥控器和按键板的支持使传统电视用户能更好适应智能电视方案。 一.功能描述 在系统启动时会先启动android_ir_uservinput设备节点将按键事件转换为Android的标准输入发送到input。 二.文件路径
按键适配源码路径如下
framework层配置文件 frameworks/base/core/java/android/view/KeyEvent.java frameworks/base/core/res/res/values/attrs.xmlnative层配置文件 frameworks/native/include/android/keycodes.h frameworks/native/include/input/InputEventLabels.h海思定制文件 device/hisilicon/bigfish/prebuilts/Vendor_0001_Product_0001.kl海思红外遥控器配处理程序代码 device/hisilicon/bigfish/system/ir_user/
三.遥控器按键适配
1 IR适配
需要先打开打印,从而获取去红外码再依次进行 linux keycode 和 Android frameworks映射。
diff --git a/device/hisilicon/bigfish/system/ir_user/ir_user.cpp b/device/hisilicon/bigfish/system/ir_user/ir_user.cpp
index 335d698e80..db082c3c3f 100644
--- a/device/hisilicon/bigfish/system/ir_user/ir_user.cppb/device/hisilicon/bigfish/system/ir_user/ir_user.cpp-550,7 550,7 void IrSampleThread()int ret IR_GetValueWithProtocol(status, key, name, sizeof(name), readTimeout);if (ret) {if (!g_debugIrEnable) {
- printf(IR_GetValueWithProtocol ret %d , ret);printf(IR_GetValueWithProtocol ret %d\n, ret);continue;}IrAutomatedTest(num, key, status);-558,13 558,14 void IrSampleThread()isMouseEventKey false;bool isBrowserMouseMode false;SetBrowserMouseMode(isBrowserMouseMode);printf(IR_GetValueWithProtocol linuxKeycode %x---------- key%llx\n,linuxKeycode ,key);if (!SetLinuxKeycode(linuxKeycode, key)) {continue;}// shield PIP(WINDOW) keyif (linuxKeycode WINDOW) {isMouseEventKey true;
- XLOGD(you have pressed PIP key\n ,yCoordinate is %d , yCoordinate);XLOGD(you have pressed PIP key\n ,yCoordinate is %d\n, yCoordinate);if (status HI_UNF_KEY_STATUS_UP) {u32MouseMode !u32MouseMode;}2 查看红外遥控器发射的按键值
串口输入以下命令 android_ir_user -d //模拟自动红外测试 通过该命令可以查看平台是否正常接收红外信号按遥控器按键可以从串口看到第一步添加的打印。 IR_GetValueWithProtocol linuxKeycode 0xa45bff00---------- key139 3 填入 key.xml 文件
源码文件device/hisilicon/Hi3751V350/etc/input/key.xml
将按键打印的键值一一对应添加到对应的功能键中。
?xml version1.0 encodingutf-8?
key_xmlhisi-keykey value0x639cff00 nameKEY_POWER / !-- --key value0x2ed1ff00 nameKEY_MUTE / !-- --key value0xef10ff00 nameKEY_SOURCE / !-- --key value0x7986ff00 nameKEY_GUIDE / !--EPG --key value0x7a85ff00 nameKEY_ZOOM / !--ASPECT --key value0x7e81ff00 nameKEY_3D / !-- --key value0x7f80ff00 nameKEY_INFO / !-- --key value0x6d92ff00 nameKEY_1 / !-- --key value0x6c93ff00 nameKEY_2 / !-- --key value0x33ccff00 nameKEY_3 / !-- --key value0x609fff00 nameKEY_4 / !-- --key value0x718eff00 nameKEY_5 / !-- --key value0x708fff00 nameKEY_6 / !-- --key value0x37c8ff00 nameKEY_7 / !-- --key value0x6b94ff00 nameKEY_8 / !-- --key value0x758aff00 nameKEY_9 / !-- --key value0x748bff00 nameKEY_0 / !-- --key value0x3bc4ff00 nameKEY_SOUNDMODE / !-- --key value0x39c6ff00 nameKEY_PICTUREMODE/ !-- --key value0x34cbff00 nameKEY_BACK / !-- --key value0x7887ff00 nameKEY_HOME / !-- --key value0x7788ff00 nameKEY_TVSETUP / !-- --key value0x6897ff00 nameKEY_MENU / !-- --key value0x35caff00 nameKEY_UP / !--key up--key value0x2dd2ff00 nameKEY_DOWN / !--key down--key value0x3ec1ff00 nameKEY_RIGHT / !--key right--key value0x6699ff00 nameKEY_LEFT / !--key left --key value0x31ceff00 nameKEY_ENTER / !--key ok --key value0x30cfff00 nameKEY_CHANNELUP / !-- --key value0x629dff00 nameKEY_CHANNELDOWN/ !-- --key value0x6f90ff00 nameKEY_VOLUMEUP / !-- --key value0x6798ff00 nameKEY_VOLUMEDOWN / !-- --key value0x649bff00 nameKEY_RED / !-- --key value0x659aff00 nameKEY_GREEN / !-- --key value0x3fc0ff00 nameKEY_YELLOW / !-- --key value0x3dc2ff00 nameKEY_BLUE / !-- --key value0x3cc3ff00 nameKEY_REWIND / !--快退 --key value0x25daff00 nameKEY_PLAYPAUSE / !-- --key value0x29d6ff00 nameKEY_STOP / !-- --key value0x2fd0ff00 nameKEY_FASTFORWARD / !--快进 --key value0x7b84ff00 nameKEY_PAGEUP / !--PAGEUP --key value0x7689ff00 nameKEY_PAGEDOWN / !--PAGEDOWN --key value0x26d9ff00 nameKEY_SUBTITLE / !--SUBTITLE --key value0x6996ff00 nameKEY_NICAM / !--NICAM MTS/HOLD --key value0x6a95ff00 nameKEY_TELETXT / !--TELETXT CC --key value0x738cff00 nameKEY_CC / !--Internet/REVEAL --key value0x7d82ff00 nameKEY_HDMI / !--Swap --key value0x38c7ff00 nameWINDOW / !--PIP/Cancel AV quicksetting--key value0x9a65ff00 nameKEY_RECALL / !--NULL --/hisi-key
/key_xml三调试指引
1 在串口输入以下命令查看输入设备在运行环境下加载的配置文件。 dumpsys input 通过该命令可以查看输入设备加载的配置文件是否正确海思平台遥控器配置文件加 载情况如下如果加载不正确系统会加载默认的配置文件Generic.kl
2 在串口输入以下命令查看Android输入事件。 getevent 通过该命令可以查看输入事件是否传到EventHub按遥控器可以从串口看到如下打印