嵌入式系统移植 - Framework : 添加 5 个自定义保留按键

添加 5 个自定义保留按键

说明

按键自定义
usr/keylayout/xxxx.kl
kernel/include/dt-bindings/input/input.h
frameworks/native/include/input/InputEventLabels.h
frameworks/native/include/android/keycodes.h
frameworks/base/core/java/android/view/KeyEvent.java
frameworks/base/core/res/res/values/attrs.xml
系统层使用自定义按键
PhoneWindowManager.java
应用层使用自定义按键
类方法里覆写 onKey() 即可.

修改源码

# rk29-keypad.kl
key 296   SYSTEM_RESERVE_1
key 297   SYSTEM_RESERVE_2
key 298   SYSTEM_RESERVE_3
key 299   SYSTEM_RESERVE_4
key 300   SYSTEM_RESERVE_5
diff --git a/include/dt-bindings/input/input.h b/include/dt-bindings/input/input.h
old mode 100644
new mode 100755
index 2b1990d..3745328
--- a/include/dt-bindings/input/input.h
+++ b/include/dt-bindings/input/input.h
@@ -313,6 +313,12 @@

 #define KEY_MICMUTE            248     /* Mute / unmute the microphone */

+#define KEY_SYSTEM_RESERVE_1 296
+#define KEY_SYSTEM_RESERVE_2 297
+#define KEY_SYSTEM_RESERVE_3 298
+#define KEY_SYSTEM_RESERVE_4 299
+#define KEY_SYSTEM_RESERVE_5 300
+
 /* Code 255 is reserved for special needs of AT keyboard driver */

 #define BTN_MISC               0x100
diff --git a/include/android/keycodes.h b/include/android/keycodes.h
old mode 100644
new mode 100755
index e391dc9..6faa3e2
--- a/include/android/keycodes.h
+++ b/include/android/keycodes.h
@@ -728,8 +728,14 @@ enum {
     AKEYCODE_TV_KEYMOUSE_RIGHT = 281,
     AKEYCODE_TV_KEYMOUSE_UP = 282,
     AKEYCODE_TV_KEYMOUSE_DOWN = 283,
-    AKEYCODE_TV_KEYMOUSE_MODE_SWITCH = 284
+    AKEYCODE_TV_KEYMOUSE_MODE_SWITCH = 284,

+       AKEYCODE_SYSTEM_RESERVE_1 = 296,
+       AKEYCODE_SYSTEM_RESERVE_2 = 297,
+       AKEYCODE_SYSTEM_RESERVE_3 = 298,
+       AKEYCODE_SYSTEM_RESERVE_4 = 299,
+       AKEYCODE_SYSTEM_RESERVE_5 = 300
+
     // NOTE: If you add a new keycode here you must also add it to several other files.
     //       Refer to frameworks/base/core/java/android/view/KeyEvent.java for the full list.
 };
diff --git a/include/input/InputEventLabels.h b/include/input/InputEventLabels.h
old mode 100644
new mode 100755
index bcce2d3..a079f80
--- a/include/input/InputEventLabels.h
+++ b/include/input/InputEventLabels.h
@@ -308,6 +308,12 @@ static const InputEventLabel KEYCODES[] = {
     DEFINE_KEYCODE(NAVIGATE_NEXT),
     DEFINE_KEYCODE(NAVIGATE_IN),
     DEFINE_KEYCODE(NAVIGATE_OUT),
+
+       DEFINE_KEYCODE(SYSTEM_RESERVE_1),
+       DEFINE_KEYCODE(SYSTEM_RESERVE_2),
+       DEFINE_KEYCODE(SYSTEM_RESERVE_3),
+       DEFINE_KEYCODE(SYSTEM_RESERVE_4),
+       DEFINE_KEYCODE(SYSTEM_RESERVE_5),

     { NULL, 0 }
 };
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
old mode 100644
new mode 100755
index b1fb725..76bc2dc
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -1827,7 +1827,13 @@ i
         <enum name="KEYCODE_TV_MEDIA_MULT_BACKWARD" value="292" />
         <enum name="KEYCODE_TV_MEDIA_PLAY" value="293" />
         <enum name="KEYCODE_TV_MEDIA_PAUSE" value="294" />
-<!--$_rbox_$_modify_$_end-->
+        <!--$_rbox_$_modify_$_end-->
+
+        <enum name="KEYCODE_SYSTEM_RESERVE_1" value="296" />
+        <enum name="KEYCODE_SYSTEM_RESERVE_2" value="297" />
+        <enum name="KEYCODE_SYSTEM_RESERVE_3" value="298" />
+        <enum name="KEYCODE_SYSTEM_RESERVE_4" value="299" />
+        <enum name="KEYCODE_SYSTEM_RESERVE_5" value="300" />
     </attr>
diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java
index ffbede4..c184451 100755
--- a/core/java/android/view/KeyEvent.java
+++ b/core/java/android/view/KeyEvent.java
@@ -784,7 +784,7 @@ public class KeyEvent extends InputEvent implements Parcelable {
     public static final int KEYCODE_TV_KEYMOUSE_MODE_SWITCH = 284;

     /*$_rbox_$_modify_$_zhangwen_20140224: for support Tv Media controller*/
-//$_rbox_$_modify_$_begin
+       //$_rbox_$_modify_$_begin
     public static final int KEYCODE_TV_MEDIA_PLAY_PAUSE = 285;
     public static final int KEYCODE_TV_MEDIA_STOP = 286;
     public static final int KEYCODE_TV_MEDIA_NEXT = 287;
@@ -795,9 +795,16 @@ public class KeyEvent extends InputEvent implements Parcelable {
     public static final int KEYCODE_TV_MEDIA_MULT_BACKWARD = 292;
     public static final int KEYCODE_TV_MEDIA_PLAY = 293;
     public static final int KEYCODE_TV_MEDIA_PAUSE = 294;
-//$_rbox_$_modify_$ end
+       //$_rbox_$_modify_$ end

-    private static final int LAST_KEYCODE = KEYCODE_TV_MEDIA_PAUSE;
+    // Modify Tower 20191112, add 5 reserve key.
+    public static final int KEYCODE_SYSTEM_RESERVE_1 = 296;
+    public static final int KEYCODE_SYSTEM_RESERVE_2 = 297;
+    public static final int KEYCODE_SYSTEM_RESERVE_3 = 298;
+    public static final int KEYCODE_SYSTEM_RESERVE_4 = 299;
+    public static final int KEYCODE_SYSTEM_RESERVE_5 = 300;
+
+    private static final int LAST_KEYCODE = KEYCODE_SYSTEM_RESERVE_5;

     // NOTE: If you add a new keycode here you must also add it to:
     //  isSystem()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值