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>
分享到:
相关推荐
然而,在某些特殊的应用场景下,开发者可能需要屏蔽或禁用Home键的功能,比如在游戏或者全屏应用中,为了提供更好的用户体验或者防止意外退出。在Android 4.0(API级别14)及以上版本中,虽然系统不再支持直接禁用...
标题提到的"屏蔽android4.0以上home按键"是一个关于如何在Android 4.0及以上版本中阻止Home键功能的技术问题。 首先,我们需要了解Android系统的权限和API等级。Android 4.0(API级别14)引入了一些新特性,而...
### Android 4.0 (ICS)上的Home键捕获实现详解 #### 背景介绍 在Android开发中,为了提升用户体验或者实现某些特定的功能需求,开发者有时会希望能够捕获到用户按下Home键的行为。例如,在一个应用内,开发者可能...
在Android 4.0(Ice Cream Sandwich)及更高版本中,开发者可以实现对Home键的底层监听和拦截操作,这是为了提供更丰富的用户体验和应用程序控制能力。本文将深入探讨这一功能,包括其实现原理、代码解析以及实际...
Android4.0以上外接鼠标-左键单击-右键单击-捕获事件Demo; 网上没有这样的Demo,例子非常简单,节约下载者查询相关资料的时间。 如果用在ListView里面,只要在自定义的Adapter里面设置该监听事件;并在Activity的...
以上是对"android4.0 日历源码Calendar"的关键知识点的概述。通过深入研究这些内容,开发者可以更好地理解和定制Android日历功能,提升用户体验。同时,对源码的熟悉也有助于解决系统级别的问题和进行定制化开发。
在讨论Android 4.0网络编程的知识点之前,需要了解Android 4.0(代号Ice Cream Sandwich,简称ICS)是Google在2011年发布的Android操作系统版本。它集成了之前的版本特色,并且首次尝试统一了平板和手机平台的用户...
在Android 4.0(Ice Cream Sandwich)系统中,MusicPlayer是系统内置的音乐播放应用,它提供了丰富的功能,如播放本地音乐库、播放列表管理、音效设置等。源码分析可以帮助我们深入理解Android多媒体处理、服务、...
以上便是关于Android 4.0网络编程的知识点。对于任何使用Android 4.0进行应用开发的人来说,理解和掌握这些知识点是必不可少的,它们可以确保开发的应用能够有效地执行网络操作,并提供良好的用户体验。
在Android应用开发中,左右滑动效果是一种常见的交互方式,特别是在列表或页面切换时。本文将探讨如何在Android 4.0(API级别14)中实现这种效果,主要涉及自定义视图和触摸事件处理。 首先,我们需要理解Android中...
《Android 4.0 Launcher深度解析》 在Android操作系统中,Launcher,即启动器,扮演着用户界面的核心角色,它是用户与设备交互的首要入口。本文将深入剖析Android 4.0版本的Launcher,理解其背后的运行机制和设计...
然而,由于Android系统的安全性和权限管理,直接监听Home键并不像监听其他按键那样简单。本实例将介绍如何通过`Intent.ACTION_CLOSE_SYSTEM_DIALOGS`广播来间接实现Home键监听。 首先,我们需要理解`Intent.ACTION_...
《Android 4.0 Gallery3D源代码解析与探索》 在Android系统中,Gallery3D是一款用于展示图片和视频的高效应用,特别是在Android 4.0(Ice Cream Sandwich,简称ICS)版本中,Gallery3D以其流畅的用户体验和优秀的...
在Android 4.0中,`ImageButton`还支持触摸反馈效果,可以通过设置`android:tint`属性或使用`android:foreground`属性来改变图像的颜色或者添加前景效果。同时,你可以利用`android:scaleType`调整图像在按钮中的...
《Android 4.0网络编程详解》一书深入探讨了在Android 4.0系统上进行网络编程的技术细节与实践方法。此版本的Android系统,即Ice Cream Sandwich(冰淇淋三明治),带来了许多网络功能上的改进和新特性,使得开发者...
本篇文章将详细讲解如何在Android 4.0.x版本中实现Home键事件的拦截监听,并对比Android 2.3.x的实现方法。 首先,我们来看在Android 2.3.x版本中常见的Home键事件拦截方法。开发者通常会在`onAttachedToWindow()`...
【Android 4.0 Launcher2 源码 Eclipse版】是一个专门为Android 4.0 (Ice Cream Sandwich)系统设计的启动器源代码,适合开发者深入理解Android系统的桌面启动器工作原理,以及进行自定义开发。这个源代码版本是为...
在Android操作系统的发展历程中,Android 4.0(代号Ice Cream Sandwich,简称ICS)是一个重要的里程碑,它为用户界面带来了重大改进,同时也对开发者提供了更多高级功能。其中,"Android 4.0 Launch"指的是启动器...
Android 4.0 Launcher系统源码是Android操作系统中桌面启动器的重要组成部分,它负责管理主屏幕、应用快捷方式、小部件以及桌面布局等用户界面。深入理解这部分源码对于开发者来说,有助于定制个性化启动器或者优化...
为了防止这种情况,开发者有时会寻求方法来屏蔽或禁用Home键。在Android中,可以通过`AccessibilityService`来实现这一功能。 `AccessibilityService`是Android提供的一种特殊服务,主要用于帮助残障人士或有特殊...