当前位置:编程学习 > wap >>

如何获取Android手机三个硬按键的状态信息

怎么获取手机上三个硬按键的状态信息?用代码实现 --------------------编程问答-------------------- 我最近也碰到了这个问题;
处于系统安全性,android阻止了onkey里面home和power键的截获
只能捕获到back键

因此home和power只能通过其它办法截获了,

1.@Override  
2.    public boolean onKeyDown(int keyCode, KeyEvent event) {   
3.        if (keyCode == KeyEvent.KEYCODE_HOME) {   
4.            return true;   
5.        } else {   
6.            return super.onKeyDown(keyCode, event);   
7.        }   
8.    }   
9.  
10.@Override  
11.   public void onAttachedToWindow() {   
12.       this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);   
13.       super.onAttachedToWindow();   
14.   } 
这个办法虽然能捕获到home按键,但是按home时,不会回到android主屏幕


最好的办法还是通过广播去监听了, 去网上查查home截获资料大堆
power的捕获办法是广播监听SCREEN_ON和SCREEN_OFF
--------------------编程问答-------------------- 若想模拟三个硬按键往手机系统发送,使之能实现手机上硬按键功能。 --------------------编程问答-------------------- 这样么?
try
{
String keyCommand = "input keyevent " + KeyEvent.KEYCODE_MENU;
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(keyCommand);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
--------------------编程问答--------------------
引用 3 楼 yuleyouxi 的回复:
这样么?
try
{
String keyCommand = "input keyevent " + KeyEvent.KEYCODE_MENU;
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(keyCommand);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}


此方法不行!各位大虾有没有其他方法呀 --------------------编程问答--------------------
引用 4 楼 xwylpsy 的回复:
Quote: 引用 3 楼 yuleyouxi 的回复:

这样么?
try
{
String keyCommand = "input keyevent " + KeyEvent.KEYCODE_MENU;
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(keyCommand);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}


此方法不行!各位大虾有没有其他方法呀


忘了说下,那个KeyEvent.KEYCODE_MENU需要用你对应的按键去替换的 --------------------编程问答--------------------
引用 5 楼 yuleyouxi 的回复:
Quote: 引用 4 楼 xwylpsy 的回复:

Quote: 引用 3 楼 yuleyouxi 的回复:

这样么?
try
{
String keyCommand = "input keyevent " + KeyEvent.KEYCODE_MENU;
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(keyCommand);
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}


此方法不行!各位大虾有没有其他方法呀


忘了说下,那个KeyEvent.KEYCODE_MENU需要用你对应的按键去替换的

返回硬按鍵能实现功能,但为什么主菜单和设置硬按鍵不成功? --------------------编程问答-------------------- 需要权限,楼主加上系统权限 --------------------编程问答-------------------- 在root过的手机上运行程序也无法操作成功! --------------------编程问答-------------------- 监控音量键
监控HOME键 --------------------编程问答-------------------- 有谁知道如何操作的??
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,