Android home键监听,用广播监听ACTION_CLOSE_SYSTEM_DIALOGS

Android home键监听,用广播监听ACTION_CLOSE_SYSTEM_DIALOGS,三星手机监听不到,而且还拦截了这一事件,都不退回到主界面。
监听代码如下: @Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
if (reason != null) {
// Log.e(TAG, "action:" + action + ",reason:" + reason);
if (mListener != null) {
if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {
// 短按home键

mListener.onHomePressed();
} else if (reason
.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)) {
// 长按home键

mListener.onHomeLongPressed();
} else if (SYSTEM_DIALOG_REASON_ASSIST.equals(reason)) {
// samsung 长按Home键
mListener.onHomeLongPressed();
}
}
}
}
}
其他手机,按下home键,执行了重写在mListener.onHomePressed()里的方法,并且回到了主界面,但是三星s7(Android6.0)手机干脆就没有反应,也不退到主界面。有大神解惑吗?

1个回答

代码如下: @Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
if (reason != null) {
// Log.e(TAG, "action:" + action + ",reason:" + reason);
if (mListener != null) {
if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {
// 短按home键

mListener.onHomePressed();
} else if (reason
.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)) {
// 长按home键

mListener.onHomeLongPressed();
} else if (SYSTEM_DIALOG_REASON_ASSIST.equals(reaso

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Home键的广播监听
Home键的广播监听对于Home键的监听不是那么容易,因为Home键可以将程序退出放在后台,所以这个事件是直接分发给系统,系统接收到之后做相应处理,Home键的事件不是直接传递到应用里面.所以在上述监听Back键的代码中,相应的回调中是收不到Home键的事件的.参考文后的博客链接,对Home键的监听主要通过注册广播接收器实现,拦截让窗口关闭的系统动作,然后根据Intent里面的具体参数,分析当前到底
Android 监听HOME键。
Android 监听HOME键。
监听android的home键
原始方法监听无效 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_HOME: Toast.makeText(this, "key_home", Toast
android Home键监听
android Home键监听的实现,查看博客http://blog.csdn.net/u012184853/article/details/51134948
Android 以广播的方式监听Home键
前言最近在写一个项目模块,需要监听Android手机的Home键,但是Home熟悉系统键,在Activity当中监听其他的键Google给我提供了相应的方法,唯独Home键没有提供,那是否有什么方法可以监听Home呢?答案是有的,用注册广播的方式来监听Home键,除了这一种外,其实还有其他几种方式,但是个人认为这种方式比较好,所以在这里我就只针对广播的方式来监听Home键做一个讲解,若有不妥的地方,
Android监听Home键(通过广播)
Android通过广播监听Home键,最近打开的应用键,锁屏键。
Android应用层监听home键
在android的开发中,经常会出现应用层监听home键的情况,通过android的源码了解到在应用层时根本无法收到Home键的,因为InputManagerService在按键事件分发的过程中已经被PhoneWindowManager处理掉。根本不会通过InputChannel上报的Android应用的viewRoot中,更不会发送到Activity中。因此需要获取Home键,只能通过间接的方式
监听android home键后台运行
Acitivity函数中有一个onUserLeaveHint(),可以监听到home键退回到后台的运行,为了防止 startActivity()的调用也引起onUserLeaveHint()的调用,必须在Intent中增加标识FLAG_ACTIVITY_NO_USER_ACTION如Intent intent = new Intent(MainActivity.this, SecondActiv
Android home键监听事件处理
Android APP开发过程中处理,home键点击事件,监听点击home键,做具体处理
Android 第三方应用监听home键
如果想要在Android中某个第三方应用中屏蔽Home键,而且此应用没有源码时,此文章可能会给你一点思路。 Android 的按键处理在PhoneWindowManager.java中 ,路径:\frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java。 可以找到该类中有interce
Android 监听Home键按键事件
Android 监听Home键按键事件标签(空格分隔):Android Home键在Android开发中有很多按键事件需要在App中捕获从而做出一些针对性的操作,例如返回键,音量键等都可以直接在dispatchKeyEvent,onKeyDown等回调方法中捕获,但是Home键事件却不能在这个方法中捕获。在Android源码KeyEvent中对于Home键的定义有这样的注释: This key i
Home键监听与电源power键监听
Home键监听与电源power键监听 1、新建广播工具类 HomeReceiver.java import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class
监听Home键
private void receive(Context context, Intent intent){         String action = intent.getAction();         if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {             String
Home键监听问题
private final BroadcastReceiver homeKeyEventReceiver = new BroadcastReceiver() {         @Override        public void onReceive(Context context, Intent intent) {        final String SYSTEM_REASON = "
HOME键的监听
app中对于HOME键广播事件的接收 首先,自定义一个BroadcastReceiver:    class HomeKeyEventBroadCastReceiver extends BroadcastReceiver { static final String SYSTEM_REASON = "reason"; static final String SYSTEM_HOME_K
home键的监听
通过广播事件实现了对home键的监听可分为长点击和短按
Home键监听
home键的事件 通过广播监控,不是通过keyDown事件广播的意图名:Intent.ACTION_CLOSE_SYSTEM_DIALOGSprivate HomeReceiver receiver; private class HomeReceiver extends BroadcastReceiver{ @Override public void onReceive(Context
HOME键监听
我们经常会使用onKeyDown(int keyCode, KeyEvent event)方法来监听返回键的事件,这次在开发中遇到需要监听HOME键的事件,却发现使用onKeyDown(int keyCode, KeyEvent event)方法不起效果,于是度娘后了解,对Home键的监听主要通过注册广播接收器实现(拦截让窗口关闭的系统动作,然后根据Intent里面的具体参数,分析当前到底是Hom
安卓-监听home键
private class HomeBroadcastReceiver extends BroadcastReceiver { private static final String TAG = "HomeBroadcastReceiver"; String SYSTEM_REASON = "reason"; String SY
监听HOME键
 class HomeKeyEventBroadCastReceiver extends BroadcastReceiver {        static final String SYSTEM_REASON = "reason";        static final String SYSTEM_HOME_KEY = "homekey";// home key        static...
监听Home键和返回键
创建homereceiverimport android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; public class HomeKeyEventBroadCastReceiver ...
Android Home键、锁屏键监听
一、代码实现如下 /** * @author 郭翰林 * @date 2018/10/31 0031 10:04 * 注释: 锁屏按钮和Home键监听 */ public class ScreenBroadcastReceiver extends BroadcastReceiver { private static volatile ScreenBroadcastReceiver ...
Android 监听返回键、Home键、多任务键
public class TestActivity extends Activity { HomeReceiver homeReceiver = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState...
Android监听Home键、多任务键
实现方式 监听BroadcastReceiver 事件 Intent.ACTION_CLOSE_SYSTEM_DIALOGS 具体实现 1、创建监听接口 public interface HomeStatusListener { void onHomeKey(); void onRecentApps(); } 复制代码实现两个方法:home键、最近app ...
监听Home键和锁屏键
看代码: import com.ucoupon.uplus.MyApplication; import com.ucoupon.uplus.utils.LogUtils; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; /**
Android监听返回键、Menu键、Home键、
back键 监听back键还是很简单的,有两种方法: 调用onBackPressed()方法:调用此方法会自动调用finish()。 @Override public void onBackPressed() { statement //在按返回键时的操作 } 调用onKeyDown()方法:根据keyCode的值,做具体操作 @Override p
【Android 进阶】Android Home 键监听
Android Home键监听Android 普通键值可以直接在dispatchKeyEvent()中处理,但Home键,比较特殊,需要单独监听其广播,且必须为动态广播,其静态广播无效;需求:Home键,设置 Kill 自己,但设置中有多个Activity,在每个Activiy 中年监听Home键广播不现实,必须把监听广播抽取出来在同一个类中实现,考虑到BaseActivity;public cla
Android中Home键的监听和代码操作程序Home键退出
一、Home键的监听 public class HomeWatcherReceiver extends BroadcastReceiver { private static final String TAG = "HomeReceiver"; private static final String SYSTEM_DIALOG_REASON_KEY = "reason"; ...
android home 键的监听方法记录
(1)在activity里面重载这个方法@Override      protected void onUserLeaveHint() {          Log.d("aeon","onUserLeaveHint");          super.onUserLeaveHint();      }  (2)监听home键广播public class HomeListener { static...
Android 屏蔽Back键,监听Home键
app进入的时候我们会看到一个闪屏页,这个闪屏页做起来很简单,但是闪屏页一般需要屏蔽返回键,去监听一下Home键,为什么需要这样考虑呢?我们先看代码吧?
android 监听Home键和亮灭屏
1.注册广播 IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);//home键 //filter.addAction(Intent.ACTION_USER_PRESENT);//用户解锁广播 filt
Android中Home键的监听和拦截
首先大家应该先了解一种情况,就是Android在应用中是无法拦截Home键的,今天我们带大家看一下Home键的三种情况。1、在应用中按下Home键的逻辑处理当我们在应用中按下Home键时界面会启动到桌面,我们在frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java类中可以看到其实现原理,其
Android 监听 home键和菜单键
Android 监听 home键和菜单键
android 监听home键无效是怎么回事?
自己昨天发现onKeydown(...)不能监听home键了,网上查了一下,一般都是这样写的:rn1.首先设置权限屏蔽Home键rnrnrn2.@Overridern public void onAttachedToWindow() rn // TODO Auto-generated method stubrn Log.d("aeon","onAttachedToWindow");rn this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); rn super.onAttachedToWindow();rn rn3.rn@Overridern public boolean onKeyDown(int keyCode, KeyEvent event) rn // TODO Auto-generated method stubrn Log.d("aeon","onKeyDown");rn if(KeyEvent.KEYCODE_HOME==keyCode)rn Log.d("aeon","home");rn return super.onKeyDown(keyCode, event);rn rnrn但事实证实,这是不行的。具体怎么样才能监听home键。rnrn目前仅发现onSaveInstanceState可以起到监听的作用。我实验版本是android4.1.rnrn哪位大神路过了,请指导一下。谢了
Android监听Home键和最近任务
IntentFilter home_filter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); registerReceiver(new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) {
如何监听android4.0的home键
我想在用户按下home键的时候监听到,并改做其他动作。可是不知道怎么监听android4.0的home键,谢谢大家!
请问如何监听home键
如题,我查看了好多类似资料,但是都是说是在返回的时候怎么样怎么样。rnrn我现在做的程序,不需要到返回,只需要监听home键就可以了,请问用什么方法可以直接监听home键rnrnrn程序大概这个意思,有实时上传GPS的功能,但是如果点home键回到菜单后,程序后台运行,那么如果这时在设置中关闭gps,那么程序在运行上传的时候就会出错了,所以我想的是在点击Home键的时候就把程序关闭,所以想找到类似监听menu键一样的监听home键方法,请问是啥。。rnrnrn处女帖……
Android完美解决监听home键
以下两种方法可以完美解决监听back键,home键,多任务键(最近任务键)。一、使用注册广播监听home键、多任务键演示图 创建一个广播代码如下: class InnerRecevier extends BroadcastReceiver { final String SYSTEM_DIALOG_REASON_KEY = "reason"; final Str
Android 监听手机按下Home键
系统本身有这个广播,只需要监听这个广播就可以了! private BroadcastReceiver mHomeKeyEventReceiver = new BroadcastReceiver() { String SYSTEM_REASON = "reason"; String SYSTEM_HOME_KEY = "homekey";
监听home键和菜单键
广播接收者:private long startTimeMillis; boolean cheat = false; private KeyReceiver keyReceiver; /** * 监听按键 */ public class KeyReceiver extends BroadcastReceiver { @Overrid
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池