完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1、先是在中的IRd节点增加键值,注意文件中要#include的输入的头文件。
--- a/arch/armboot/dts/rk3288-evb -android-rk808-hdmi.dts +++ b/arch/arm/boot/dts/rk3288-evb-android-rk808-hdmi.dts @@ -43,6 +43,7 @@ /dts-v1/; #include “rk3288-evb.dtsi” #include “rk3288-android.dtsi” +#include 《dt-bindings/input/input.h》 //添加加载头文件 / { compatible = “rockchip,rk3288-evb-android -rk808-hdmi”, “瑞芯微,rk3288”; @@ -435,3 +436,71 @@ pinctrl-0 = 《&pwm1_pin_pull_down》; }; //由 czd 添加以支持 IR-Remote on start &pwm2 { status = “okay”; 兼容 = “ pinctrl-names = ”默认“; pinctrl-0 = 《&pwm2_pin》; remote_pwm_id = 《2》; handle_cpu_id = 《1》; 中断 = 《GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH》; remote_support_psci = 《1》; ir_key1{ rockchip,usercode = 《0xbd02》; rockchip_table = 《0x35 KEY_BACK, 《0x35 KEY_UP》, 《0x2d KEY_DOWN》, +x1c KEY_PAD, 《0x66 KEY_LEFT, 2、在内核头输入.h》x2》中添加键定义,不能跟以前的 --- 一个/kernel/include/dt-bindings/input/input. --- 一个/kernel/include/dt-bindings/input/input.轨迹键值重复,input.h 路径要与 dts 文件中头文件的一致。 @@ -619,6 +619,8 @ #define BTN_TRIGGER_HAPPY39 0x2e6 #define BTN_TRIGGER_HAPPY40 0x2e7 + #define KEY_PAD 0x2e8 3、在键值文件映射上增加键值与上层的关系,一般是一个*.kl,可以通过dumpsys input来确认当前远程使用哪个kl文件。 130|rk3288:/ $ dumpsys input 2: ff680020.pwm Classes: 0x00000401 Path: /dev/input/event0 Descriptor: d2c52ff0f656fac4cd7b7a118d575e0109a9fe1c Location: gpio-keys/remotectl Controller: 0 UniqueId: 标识符:总线=0x0019,供应商=0x0001,产品=0x0001,版本=0x0100 KeyLayoutFile:/system/usr/keylayout/ff680020_pwm.kl KeyCharacterMapFile: /system/usr/keychars/Generic.kcm ConfigurationFile: HaveKeyboardLayoutOverlay: false --- a/device/rockchip/common/ff680020_pwm.kl +++ b/device/rockchip/common/ff680020_pwm.kl @@ -35, 6 +35,8 @@key19 MEDIA_PAUSE key 207DIA_PLAY +key 444 PAD #key 400 TV_MEDIA_MULT_BACKWARD #key 401 TV_MEDIA_MULT_FORWARD 说明: key – 是关键字。这个是固定驱动值,不需要改变。 744 – 这是在驱动中4 、 _ 在 KeyEvent 中定义 Android 上的值,定义值后面有提示,新层需要更新的地方。 文件路径:frameworks/base/core/java/android/view/KeyEvent.java public static final int KEYCODE_PAD = 278; 私有静态最终 int LAST_KEYCODE = KEYCODE_PAD; // 注意:如果您在此处添加新的键码,您还必须将其添加到: // isSystem() // isWakeKey() // frameworks/native/include/android/keycodes.h // frameworks/native/include/input /InputEventLabels.h // frameworks/base/core/res/res/values/attrs.xml // 模拟器? // LAST_KEYCODE 在当前文件中定义键值,修改最后面的键值、isSystem 和 isWakeKey 两种方法。 diff --git a/frameworks/base/core/java/android/view/KeyEvent.java b/frameworks/基础/核心/java/android/view/KeyEvent.java 索引 bcf9a46..45f6ffb 100755 --- a/frameworks/base/core/java/android/view/KeyEvent.java +++ b/frameworks/base/core/java/android/view/KeyEvent.java @@ -773 ,7 +773,9 @@ public class KeyEvent extends InputEvent implements Parcelable { public static final int KEYCODE_TV_MEDIA_PAUSE = 274; //$_rbox_$_modify_$ end - private static final int LAST_KEYCODE = KEYCODE_TV_MEDIA_PAUSE; + 公共静态最终 int KEYCODE_PAD = 278; + + 私有静态最终 int LAST_KEYCODE = KEYCODE_PAD; // 注意:如果您在此处添加新的密钥代码,您还必须将其添加到: //isSystem() @@ -1818,6 +1820,7 @@ public class KeyEvent extends InputEvent implements Parcelable { case KeyEvent.KEYCODE_BRIGHTNESS_DOWN: case KeyEvent.KEYCODE_BRIGHTNESS_UP: case KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK: + case KeyEvent.KEYCODE_PAD: return true; } @@ -1833,6 +1836,7 @@ public class KeyEvent extends InputEvent implements Parcelable { case KeyEvent.KEYCODE_WAKEUP: case KeyEvent.KEYCODE_PAIRING: case KeyEvent.KEYCODE_NOTIFICATION: + case KeyEvent.KEYCODE_PAD: return true; 5、在keycodes.h文件中定义 键值 diff --git a/frameworks/native/include/android/keycodes.hb/frameworks/native/include/android/ keycodes.h index ff998df..212fef6 100755 --- a/frameworks/native/include/android/keycodes. h +++ b/frameworks/native/include/android/ keycodes.h @@ -307,6 +307,7 @@ enum { AKEYCODE_TV_KEYMOUSE_UP = 262, AKEYCODE_TV_KEYMOUSE_DOWN = 263, AKEYCODE_TV_KEYMOUSE_MODE_SWITCH = 264, +AKEYCODE_PAD = 278, AKEYCODE_HELP = 259 // 注意:如果您在此处添加新的密钥代码,您还必须将其添加到其他几个文件中。 6、在InputEventLabels.h中添加通知标签 diff --git a/frameworks/native/include/input/InputEventLabels.hb/frameworks/native/include/input/InputEventLabels.h index d7a06dd..4359e3f 100755 --- a/frameworks/native/include/input/InputEventLabels。 h +++ b/frameworks/native/include/input/InputEventLabels.h @@ -304,6 +304,7 @@ static const InputEventLabel KEYCODES[] = { DEFINE_KEYCODE(TV_KEYMOUSE_DOWN), DEFINE_KEYCODE(TV_KEYMOUSE_MODE_SWITCH), DEFINE_KEYCODE(HELP ), +DEFINE_KEYCODE(PAD), { NULL, 0 } }; 7、在 中 增量/-git a/frameworks/base/core/ 索引 75157be..e591fce 100755 --- a/frameworks/base/core/res/res/values/attrs.xml +++ b/frameworks/base/core/res/res/values/attrs.xml @@ -1791 ,6 +1791,7 @@ 《enum name=”KEYCODE_TV_MEDIA_MULT_BACKWARD“ value=”272“ /》 《enum name=”KEYCODE_TV_MEDIA_PLAY“ value=”273“ /》 《enum name=”KEYCODE_TV_MEDIA_PAUSE“ value=”274“ /》 + 《enum name=”278“ 《!--PAD value=”278“ 《!-- PAD value=”278“ 《!-- PAD _rbox_$modify_$_end-》 《/att》 经过如上的步骤”744“ 和Android系统中的KEY_PAD就可以起来了,注意这里的” 8、在Android键的处理工作中,只是按顺序的键,并相应地处理 框架。的,加入对层级的输入系统中。 添加的函数文件是:frameworks/base/policy/src/com/android 添加的具体方法:在PhoneWindowManager的interceptKeyBeforeQueueing() 这样/in.java中的interceptKeyBeforeQueueing()中,新的java内部/该键值。一个正式定义的流程就OK了,编译需要先使用命令make update-api,然后会编译报错。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
1070 浏览 0 评论
1248 浏览 1 评论
981 浏览 1 评论
2263 浏览 1 评论
3586 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 13:59 , Processed in 0.635342 second(s), Total 70, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号