日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 键盘 码,Android键盘输出增加按键码

發布時間:2023/12/16 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 键盘 码,Android键盘输出增加按键码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開發過程中免不得需要增加或減少按鍵碼值,在Android2.3系統事件處理部分,主要向上層提供統一的按鍵碼(KeyCode),這個按鍵碼是一個整數,在上層的JAVA程序中主要通過這個值來判斷系統的實現。

關于輸入事件的處理前面已經講過,請參考:http://www.linuxidc.com/Linux/2012-01/50691.htm

這里主要講android事件的處理過程,需要經過兩個轉換步驟: 

1、鍵掃描碼ScanCode是由linux的Input驅動框架定義的整數類型,可參考input.h頭文件

在步驟一中將其值轉換成表示按鍵的字符串

鍵盤布局文件(*.kl)將完成第一步的轉換,放在/system/usr/keylayout/下面

舉例如下:

input.h 中字母鍵定義:

#define KEY_Q 16

#define KEY_W 17

#define KEY_E 18

#define KEY_R 19

#define KEY_T 20

#define KEY_Y 21

#define KEY_U 22

#define KEY_I 23

#define KEY_O 24

#define KEY_P 25

而qwert.kl中定義如下:

ScanCode + 字符串值

key 16??? Q

key 17??? W

key 18??? E

key 19??? R

key 20??? T

key 21??? Y

key 22??? U

key 23??? I

key 24??? O

key 25??? P

2、通過查找KEYCODES數組,將literal字符串轉換成value的整型值,即轉換到KeyCode值了

片段如下,右邊的值是android系統中使用的KeyCode值:(文件路徑:frameworks/base/include/ui/KeycodeLabels.h)

static const KeycodeLabel KEYCODES[] = {

...

{ "A", 29 },

{ "B", 30 },

{ "C", 31 },

{ "D", 32 },

{ "E", 33 },

{ "F", 34 },

{ "G", 35 },

{ "H", 36 },

{ "I", 37 },

{ "J", 38 },

{ "K", 39 },

{ "L", 40 },

{ "M", 41 },

{ "N", 42 },

{ "O", 43 },

{ "P", 44 },

{ "Q", 45 },

{ "R", 46 },

{ "S", 47 },

{ "T", 48 },

{ "U", 49 },

{ "V", 50 },

{ "W", 51 },

{ "X", 52 },

{ "Y", 53 },

{ "Z", 54 },

...

};

右邊的值在android中定義如下:(文件路徑:frameworks/base/include/android/keycodes.h)

/*

* Key codes.

*/

enum {

AKEYCODE_A?????????????? = 29,

AKEYCODE_B?????????????? = 30,

AKEYCODE_C?????????????? = 31,

AKEYCODE_D?????????????? = 32,

AKEYCODE_E?????????????? = 33,

AKEYCODE_F?????????????? = 34,

AKEYCODE_G?????????????? = 35,

AKEYCODE_H?????????????? = 36,

AKEYCODE_I?????????????? = 37,

AKEYCODE_J?????????????? = 38,

AKEYCODE_K?????????????? = 39,

AKEYCODE_L?????????????? = 40,

AKEYCODE_M?????????????? = 41,

AKEYCODE_N?????????????? = 42,

AKEYCODE_O?????????????? = 43,

AKEYCODE_P?????????????? = 44,

AKEYCODE_Q?????????????? = 45,

AKEYCODE_R?????????????? = 46,

AKEYCODE_S?????????????? = 47,

AKEYCODE_T?????????????? = 48,

AKEYCODE_U?????????????? = 49,

AKEYCODE_V?????????????? = 50,

AKEYCODE_W?????????????? = 51,

AKEYCODE_X?????????????? = 52,

AKEYCODE_Y?????????????? = 53,

AKEYCODE_Z?????????????? = 54,

總結

以上是生活随笔為你收集整理的android 键盘 码,Android键盘输出增加按键码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。