`
学不止
  • 浏览: 238788 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

android4.0以上监听home(屏蔽home或做其他操作)

阅读更多

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

 protected void onResume()
    {
        super.onResume();
        isTesting=true;
        new CatchLogThread().start();
    }
class CatchLogThread extends Thread {  
     @Override  
      public void run() {  
          Process mLogcatProc = null;  
          BufferedReader reader = null;  
           String line;  
           while (isTesting) {  
               try {  
                 // 获取logcat日志信息   
                   mLogcatProc = Runtime.getRuntime().exec(new String[] { "logcat", "ActivityManager:I *:S" });  
                   reader = new BufferedReader(new InputStreamReader(mLogcatProc.getInputStream()),2*1024);  
                   while ((line = reader.readLine()) != null) {  
                       if (line.indexOf("android.intent.category.HOME") > 0) {  
                           isTesting = false;  
                           System.out.println("DDDDDDDDDDDDDDDDDDDDDDDDD");
                           handler.sendMessage(handler.obtainMessage());   
                         Runtime.getRuntime().exec("logcat -c");//删除日志   
                          break;  
                      }   
                  }  
               } catch (Exception e) {  
                   e.printStackTrace();  
               }  
           }  
      }  
    };  
Handler handler = new Handler() {  
       public void handleMessage(android.os.Message msg) {
           
           startActivity(new Intent(MainActivity.this,MainActivity.class));
           Toast.makeText(MainActivity.this, "I Have Home is pressed!!!!!",Toast.LENGTH_LONG).show();
           System.out.println("Home is Pressed+++++++++++++++++");
        };   
   };  

 

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

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

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

1
1
分享到:
评论
2 楼 q316085319 2015-03-11  

可以参考一下该文章:http://www.glmei.cn/?p=30354
1 楼 poplarni 2012-10-19  
请问想 屏蔽home键怎么做阿 ,谢谢哦 

相关推荐

    android 4.0以上屏蔽Home键

    下面我们将详细介绍如何在Android 4.0以上版本中屏蔽Home键。 首先,我们需要理解Android系统的权限结构。在Android 4.0之前,开发者可以通过注册一个BroadcastReceiver监听ACTION_HOME_KEY_DOWN和ACTION_HOME_KEY_...

    屏蔽android4.0以上home按键。

    标题提到的"屏蔽android4.0以上home按键"是一个关于如何在Android 4.0及以上版本中阻止Home键功能的技术问题。 首先,我们需要了解Android系统的权限和API等级。Android 4.0(API级别14)引入了一些新特性,而...

    Android 4.4、5.1、6.0 屏蔽Home键

    由于安全性和用户体验考虑,Android不允许随意篡改系统核心行为,包括屏蔽Home键。但是,开发者可以通过创建自定义Launcher或者Service来模拟对Home键行为的控制。下面我们将分步骤讲解如何实现这一目标。 1. 创建...

    Android4.0.x Home键事件拦截监听的方法

    本篇文章将详细讲解如何在Android 4.0.x版本中实现Home键事件的拦截监听,并对比Android 2.3.x的实现方法。 首先,我们来看在Android 2.3.x版本中常见的Home键事件拦截方法。开发者通常会在`onAttachedToWindow()`...

    安卓键盘输入相关-屏蔽4.0Home键.rar

    "安卓键盘输入相关-屏蔽4.0Home键.rar"这个压缩包文件就是针对这样的需求,提供了关于如何在Android 4.0(Ice Cream Sandwich)版本上屏蔽Home键的解决方案。 首先,我们要理解Android系统的权限机制。在Android中,...

    实测可行的Android 4.x锁屏屏蔽HOME键的Demo

    本Demo "实测可行的Android 4.x锁屏屏蔽HOME键的Demo" 就是针对这一需求的解决方案,它能在锁屏状态下有效阻止用户按下HOME键,提高应用的安全性和用户体验。 首先,我们要理解Android系统的权限机制。在Android中...

    实现一个Android锁屏App功能的难点总结

    1. **屏蔽Home键** - 自Android 4.0开始,Home键在框架层已被系统直接响应,第三方应用无法直接通过`Activity.onKeyDown`方法拦截。然而,可以通过监听`ACTION_CLOSE_SYSTEM_DIALOGS`广播来检测Home键的按下。当`...

Global site tag (gtag.js) - Google Analytics