一.在上一篇中,我们已经在linux中定义了键值MYHALL为250,继续上面键值在Android上添加键值。
首先找到键值相关定义的kl文件,加入代码
key 250 MYHALL WAKE
MYHALL就是我们在Android上使用关联的字符串。
注:在kl文件中:
WAKE: 当设备睡眠时按下此键,设备将被唤醒,按键事件将会被发送到应用程序.
WAKE_DROPPED: 当设备睡眠时按下此键,设备将被唤醒,而按键事件不会被发送到应用程序.
比如我的测试键值apk:
1、当没有设置WAKE和WAKE_DROPPED时候,系统没有休眠的时候,正常读取到MYHALL键值,系统在睡眠时候,按下MYHALL,系统不能醒来,apk读取不到键值。
2、当设置了WAKE_DROPPED的时候,系统如果在睡眠状态,按下MYHALL,系统唤醒,但是apk读取不到MYHALL键值。
3、当设置了WAKE的时候,系统如果在睡眠状态,按下MYHALL,系统唤醒,并且apk成功读取到MYHALL键值。
二.然后就跟着这个博客做吧(= =!)
http://blog.csdn.net/kakaback/article/details/8115748
代码修改完之后可能报错,make update_api下就好
三.编译通过,烧入系统之后,编写apk测试增加的键值,部分代码如下
package com.example.mykeycode;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.view.KeyEvent;
public class Mykeytest extends Activity {
private EditText tv = null;
String string="Start...";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mykeytest);
tv = (EditText)findViewById(R.id.editText1);
tv.setText(string);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode==KeyEvent.KEYCODE_BACK) {
return false;
}
string="你按下的是"+"key["+keyCode+"]";
tv.setText(string);
return true;
}
}
完整的apk键值测试源代码下载地址:
http://download.csdn.net/detail/u011630458/5963585