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

如何监听android4.0的home键

我想在用户按下home键的时候监听到,并改做其他动作。可是不知道怎么监听android4.0的home键,谢谢大家! --------------------编程问答-------------------- home键好像监听不到吧,看下源码中的PhoneWindowManager.java有监听home键 --------------------编程问答--------------------
class InnerRecevier extends BroadcastReceiver {

final String SYSTEM_DIALOG_REASON_KEY = "reason";

final String SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS = "globalactions";

final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps";

final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";

@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) {
String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
if (reason != null) {
if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {
//press home
} else if (reason.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)) {
//long press home
}
}
}
}
}


以上是我监听home键的广播接收器   你看了估计就知道怎么监听了 --------------------编程问答-------------------- 学习了~! --------------------编程问答-------------------- @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
  switch (keyCode) {
     case KeyEvent.KEYCODE_HOME:
      .......//添加自己的处理
      return true;
   }
 
   return super.onKeyDown(keyCode, event);//如果不想让父类继续处理,直接改为return false
} --------------------编程问答--------------------
引用 4 楼 woweiwokuang0000 的回复:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
  switch (keyCode) {
     case KeyEvent.KEYCODE_HOME:
      .......//添加自己的处理
      return true;
   }
 
   return ……


4.0这个方法不行,以上方法2.3以下都可以 --------------------编程问答-------------------- 4.0的HOME监听不到 --------------------编程问答-------------------- 不用费脑筋去思考如何监听了,一般是监听不到的,尤其是想屏蔽HOME键的同学。我修改过这个问题,在ICS之前都可以监听(不包括ICS),如果你是做手机的,你有机会修改这个,呵呵。我做过按键的自检程序,就修改的貌似PhoneWindowManager.java吧,很久之前的事情了。
--------------------编程问答--------------------
引用 2 楼 sasuke38 的回复:
Java code?12345678910111213141516171819202122232425class InnerRecevier extends BroadcastReceiver {         final String SYSTEM_DIALOG_REASON_KEY = "reason";         final String SYSTEM_DI……


学习了 --------------------编程问答-------------------- demo如下,可以在点击home时执行自己的操作
http://bbs.csdn.net/topics/390336545?page=1#post-394283462 --------------------编程问答-------------------- demo如下,可以在点击home时执行自己的操作
开始发错了,在这里
http://download.csdn.net/detail/fire_fire_fire/5286015 --------------------编程问答--------------------
引用 楼主 chenzi259 的回复:
我想在用户按下home键的时候监听到,并改做其他动作。可是不知道怎么监听android4.0的home键,谢谢大家!



    public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);//关键代码
        setContentView(R.layout.main);
    }
    再重写onKey事件即可。
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,