不同的安卓设备拥有的硬按键可能有很大差别,全键盘手机的按键就特别多,请问,在按一个硬按键的时候系统肯定是发送了一个消息,我想在就是想捕获这个消息,然后来知道它按的那个键。怎么获得?

解决方案 »

  1.   


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
     Log.i("Utopia", "按下了back键");
           }
    return super.onKeyDown(keyCode, event);
    }
      

  2.   


    这个我知道的,这个是在activity里面能监控到,我的意思是说就算按home键回到桌面了,我后台运行的service 能不能检测到按了什么按钮呢》?在按了硬件后android系统是发了一个广播还是什么?怎么样能够检测到?
      

  3.   

    系统底层发现有硬键按下会把信息发到目标窗口
    像HOME之类的键一般是被phonemanager消费掉的,一般不会传到onkeydown里面
    你可以对照着/system/usr/keylayout/qwerty.kl里的信息查看/dev/input/event*里面的信息
    不过这个可能需要权限
    希望对你有用