更改Android设备的键值映射
来源:互联网 发布:淘宝客服监控 编辑:程序博客网 时间:2024/04/28 23:04
原文链接地址:http://neverweep.com/2011/06/change-key-layout-on-android/
其实此文是一年之前应一个Milestone机友的求助(返回键失灵,希望用搜索键替代返回键)而写的,后来又发到了论坛上,现在拿来就是为了充充门面,让本博客显得有点牛逼的样子。
此文是以Milestone(XT702)为参照所写,其原理适用于大部分基于Android的设备(包含但不限于手机),但是又因Android设备的高度定制性,此方法不可能完全适用于所有Android设备,映射值需要参考对应设备的映射表,不能混用。
Android使用标准的 linux 输入事件设备 /dev/input/,驱动按键定义在 linux 内核 /include/linux/input.h 中,但是Android系统没有直接使用映射后的值,而是对其再进行了一次映射。从内核标准键值到Android 所用的键值映射表定义在 Android 文件系统的 /system/usr/keylayout 目录下。Android标准的键值映射表文件为 qwerty.kl,定义如下:
KEY键值ID映射值Flagkey1BACKWAKE_DROPPEDkey21 key32 key43 key54 key65 key76 key87 key98 key109 key110 key12MINUS key13EQUALS key14DEL key15TAB key16Q key17W key18E key19R key20T key21Y key22U key23I key24O key25P key26LEFT_BRACKET key27RIGHT_BRACKET key28ENTER key30A key31S key32D key33F key34G key35H key36J key37K key38L key39SEMICOLON key40APOSTROPHE key42SHIFT_LEFT key43BACKSLASH key44Z key45X key46C key47V key48B key49N key50M key51COMMA key52PERIOD key53SLASH key54SHIFT_RIGHT key56ALT_LEFT key57SPACE key59MENUWAKE_DROPPEDkey60SOFT_RIGHTWAKEkey61CALLWAKE_DROPPEDkey62ENDCALLWAKE_DROPPEDkey100ALT_RIGHT key102HOMEWAKEkey103DPAD_UPWAKE_DROPPEDkey105DPAD_LEFTWAKE_DROPPEDkey106DPAD_RIGHTWAKE_DROPPEDkey107ENDCALLWAKE_DROPPEDkey108DPAD_DOWNWAKE_DROPPEDkey114VOLUME_DOWN key115VOLUME_UP key116POWERWAKEkey127SEARCHWAKE_DROPPEDkey139MENUWAKE_DROPPEDkey150EXPLORER key155ENVELOPE key158BACKWAKE_DROPPEDkey212CAMERA key215AT key217SEARCHWAKE_DROPPEDkey227STAR key228POUND key229MENUWAKE_DROPPEDkey230SOFT_RIGHTWAKEkey231CALLWAKE_DROPPEDkey232DPAD_CENTERWAKE_DROPPED
很明显,这是依照标准QWERTY电脑键盘从左至右从上到下的顺序排列的。
*映射值:
即相应键值的英文名称,具体含义搜索一下便知。注意需要全部使用大写。
*Flag:
SHIFT:按下时,自动加上SHIFT键值。
ALT:按下时,自动加上ALT键值。
CAPS:按下时,自动带上CAPS大写。
WAKE:按下时,当设备进入睡眠的时候,按下这个键将唤醒,并且发送消息给应用层。
WAKE_DROPPED:按下时,且设备正处于睡眠,设备被唤醒,但是不发送消息给应用层。
只要打开qwerty.kl,将其中对应的Key的ID后面的键值改为需要的键值即可。再用root explorer等具有系统文件操作功能的文件管理器把qwerty.kl移动到根目录的/system/usr/keylayout/里覆盖同名文件即可。(电脑端建议使用notepad++等文本编辑器打开qwerty.kl文件)
例如:用搜索键替代返回键:
key 127 SEARCH WAKE_DROPPED
key 217 SEARCH WAKE_DROPPED
参看上面的键值映射表可以知道返回键的键值定义为BACK。 然后需要将qwerty.kl中的对应位置改成
key 127 BACK WAKE_DROPPED
key 217 BACK WAKE_DROPPED
将该文件回拷到手机上时最好先放到手机内非/sdcard/的目录,修改好相应的权限(CHOMD 644以上)之后再拷入/system/usr/keylayout/ ,然后重启即可。
为了安全起见,在操作之前最好对手机进行nandroid备份。
参考这种方法,基本可以实现将任意键修改为你所需要的功能。
- 更改Android设备的键值映射
- 更改 Android 设备的键盘映射
- Android 设备按键映射更改
- linux+android 按键键值映射关系
- C#关联容器键值的更改
- 更改properties键值
- 更改J2ME的默认设备
- javascript键值映射
- 修改键值映射
- Qt按键键值 与 相关字符串 的映射表
- EL标签显示hibernate映射的外键值问题
- Qt按键键值 与 相关字符串 的映射表
- Java记录 -63- Java的键值映射Map
- 更改android开发虚拟机设备avd路径
- 更改名称映射的注解 @SerializedName
- android 添加一个新的android 键值
- 更改iTunes的设备备份路径
- 如何更改你的 Mac 设备名称
- 关于网页上输出当前时间的技术
- 预处理器变量小结
- uniqueidentifier 数据类型
- 11级_Java_曹建波 11.09 JavaBean与Jsp
- 谷歌能查到结果,但是跳转失败,怎么办
- 更改Android设备的键值映射
- iPhone开发之深入浅出 (7) — ARC总结
- HTML5实战
- 媒介排期表标准化导出工具
- 日志记录的作用和方法
- git/github初级运用自如
- 父类与子类之间变量和方法的调用
- javascript中的编码与解码
- OpenCV学习笔记2:使用opencv进行图像比较