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>
分享到:
相关推荐
android 4.0 上的HOME 键捕获
Android4.0以上外接鼠标-左键单击-右键单击-捕获事件Demo; 网上没有这样的Demo,例子非常简单,节约下载者查询相关资料的时间。 如果用在ListView里面,只要在自定义的Adapter里面设置该监听事件;并在Activity的...
android4.0版本以上对Home键从底层拦截操作
主要介绍了Android4.0.x Home键事件拦截监听的方法,对比分析了2.3.x的实现方法,分析了4.0.x实现Home键事件拦截监听的相关技巧,需要的朋友可以参考下
android监听,屏蔽多任务键,用来实现重写多任务键功能。
Android 监听Home键、锁屏、解屏处理方法,都有注释。使用简介: (1)、将内部类(广播类)作为MyBroadcastReceiver类的成员变量,方便activity使用 (2)、对外接口类(如:ScreenStateListener)作为...
一个简单的Android按键监听程序,通过通过BroadcastReceiver监听Home,电源Power,和音量变化Volume键
Android APP开发过程中处理,home键点击事件,监听点击home键,做具体处理
Android Webview 滑动监听 放大缩小查看网页图片
android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么...
主要介绍了Android 利用广播监听usb连接状态,需要的朋友可以参考下
android 后台监听按键事件方法及demoandroid 后台监听按键事件方法及demo
主要介绍了Android中的webview监听每次URL变化实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
android 利用重力感应监听 微修改代码可以解决 来电时翻转手机后静音。
这个项目已经很老了,其实是从 Android 4.4.4 的系统 Settings 中 copy 出来的。 其实原理都是编译运行系统 ...Android 操作以太网的项目,提供了监听网线插拔和以太网开关,设置以太网静态IP、网关、子网掩码、dns等。
昨天需要处理一个问题,需要监听home键。最开始想到使用onKeydonwn这个方法。但是发现home不能这样处理,onKeydonwn可以处理菜单键和back键,但home不能。因为home键是系统键,情况特殊一些。 看了一下网上的资料,...
主要介绍了Android实现静态广播监听器的方法,涉及Android的广播机制与记录监听广播信息的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
在开发时遇到一个问题,需要对软...但是由于android不直接提供对软键盘打开与关闭操作的监听器,所以必须自己来写一个关于软键盘打开/关闭的监听器。 原理是通过对OnGlobalLayoutListener()来实现对软键盘的状态监听器
通过Intent.ACTION_CLOSE_SYSTEM_DIALOGS监听Android的Home按键消息实例程序。