我想听Android按键。例如,当我按下手机上的菜单键时,我将按下此按键并启动应用程序。
我不知道Phonewindowmanager.java
当我按下一个键时,interceptKeyTq()
来了两次。
答案 0 :(得分:2)
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
//do something
}
return true;
}
希望这有帮助。
答案 1 :(得分:1)
这是一个简单的测试程序。不要忘记setFocusable(true)和 无效()。
使用System.out时,可以使用Log - http://code.google.com/android/reference/android/util/Log.html
public class HelloAndroid extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(new MyView(this));
}
class MyView extends View {
private static final String LOGID = "MxView";
String message = "No key pressed yet.";
MyView(Context context) {
super(context);
setFocusable(true);
}
@Override
protected void onDraw(Canvas canvas) {
Paint paint = new Paint();
canvas.drawText(message, 5, 20, paint);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent ev) {
switch(keyCode) {
case KeyEvent.KEYCODE_DPAD_UP:
message = "Key Up!";
Log.i(LOGID, message);
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
message = "Key Down!";
Log.i(LOGID, message);
break;
default:
return false;
}
invalidate();
return true;
}
}
}