android4.0以上版本监听home按键 通过监听log的方式监听home按钮

android 4.0以后无法通过更改页面的类型来监听home键了。如果不改源码的情况下,下面的方式可以很好的监听到home键(前提是手机打系统日志,有些手机日志被关闭了(如华为荣耀)就无法监听了)。

Java代码   收藏代码
  1.  protected void onResume()  
  2.     {  
  3.         super.onResume();  
  4.         isTesting=true;  
  5.         new CatchLogThread().start();  
  6.     }  
  7. class CatchLogThread extends Thread {    
  8.      @Override    
  9.       public void run() {    
  10.           Process mLogcatProc = null;    
  11.           BufferedReader reader = null;    
  12.            String line;    
  13.            while (isTesting) {    
  14.                try {    
  15.                  // 获取logcat日志信息     
  16.                    mLogcatProc = Runtime.getRuntime().exec(new String[] { "logcat""ActivityManager:I *:S" });    
  17.                    reader = new BufferedReader(new InputStreamReader(mLogcatProc.getInputStream()),2*1024);    
  18.                    while ((line = reader.readLine()) != null) {    
  19.                        if (line.indexOf("android.intent.category.HOME") > 0) {    
  20.                            isTesting = false;    
  21.                            System.out.println("DDDDDDDDDDDDDDDDDDDDDDDDD");  
  22.                            handler.sendMessage(handler.obtainMessage());     
  23.                          Runtime.getRuntime().exec("logcat -c");//删除日志     
  24.                           break;    
  25.                       }     
  26.                   }    
  27.                } catch (Exception e) {    
  28.                    e.printStackTrace();    
  29.                }    
  30.            }    
  31.       }    
  32.     };    
  33. Handler handler = new Handler() {    
  34.        public void handleMessage(android.os.Message msg) {  
  35.              
  36.            startActivity(new Intent(MainActivity.this,MainActivity.class));  
  37.            Toast.makeText(MainActivity.this"I Have Home is pressed!!!!!",Toast.LENGTH_LONG).show();  
  38.            System.out.println("Home is Pressed+++++++++++++++++");  
  39.         };     
  40.    };    

 

以上是全部精华代码。要对home键按下后做操作可以在handler中进行。希望可以帮助到一些冥思苦想而不得解的人。

最后记得在AndroidManifest.xml中加读取日志权限:

<uses-permission android:name="android.permission.READ_LOGS"></uses-permission>


点击打开链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值