系统按键:Home键和最近任务键的监听器简单封装
来源:互联网 发布:维也纳工业大学 知乎 编辑:程序博客网 时间:2024/04/29 12:49
package com.ldw.parentcarefree.utils;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;/** * 监听系统按键,Home键、最近任务键 * Created by ldw on 2016/8/22. */public class SystemKeyWatcher { private static final String TAG = "SystemKeyWatcher"; private Context mContext = null; private SystemKeyReceiver mSystemKeyReceiver = null; private OnSystemKeyListener mOnSystemKeyListener = null; /** * 构造函数,必须传上下文参数 * @param context */ public SystemKeyWatcher(Context context) { if(context == null){ throw new IllegalArgumentException("Parameters cannot be null"); } mContext = context; } public interface OnSystemKeyListener { /** * Home键 */ void onHomeKey(); /** * 最近任务键 */ void onRecentApps(); } public void setOnSystemKeyListener(OnSystemKeyListener listener){ mOnSystemKeyListener = listener; } /** * 注册 */ public void register() { //Log.v(TAG, "---register---"); if(mSystemKeyReceiver == null){ mSystemKeyReceiver = new SystemKeyReceiver(); } IntentFilter homeFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); mContext.registerReceiver(mSystemKeyReceiver, homeFilter); } /** * 注销 */ public void unregister() { //Log.v(TAG, "---unregister---"); if (mSystemKeyReceiver != null) { mContext.unregisterReceiver(mSystemKeyReceiver); mSystemKeyReceiver = null; } } /** * Home键监听内部类 */ class SystemKeyReceiver extends BroadcastReceiver { private static final String SYSTEM_DIALOG_REASON_KEY = "reason"; private static final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps"; private static final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey"; private static final String SYSTEM_DIALOG_REASON_LOCK = "lock"; private static final String SYSTEM_DIALOG_REASON_ASSIST = "assist"; @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); //Log.v(TAG, "---onReceive=---reason:" + reason); if (SYSTEM_DIALOG_REASON_HOME_KEY.equals(reason)) {//短按Home键 if(mOnSystemKeyListener != null){ mOnSystemKeyListener.onHomeKey(); } } else if (SYSTEM_DIALOG_REASON_RECENT_APPS.equals(reason)) {//最近任务键 if(mOnSystemKeyListener != null){ mOnSystemKeyListener.onRecentApps(); } } else if (SYSTEM_DIALOG_REASON_LOCK.equals(reason)) {//锁屏 } else if (SYSTEM_DIALOG_REASON_ASSIST.equals(reason)) {//samsung长按Home键 } } } }}
0 0
- 系统按键:Home键和最近任务键的监听器简单封装
- Android监听Home键和最近任务
- android 屏保锁中屏掉按键和HOME键的方法
- Android_监听Home按键的封装
- Android捕获监听Home键、最近任务列表键
- Android之最简单和靠谱的监听Home键和菜单键(最近任务栏)
- 默认返回键和home键按键无声音解决
- Atitit.android js 的键盘按键检测Back键Home键和Menu键事件
- android屏蔽返回键和home键等各个按键的方法
- android屏蔽返回键和home键等各个按键的方法
- android home最近任务问题
- android实现系统的返回键和home键
- android Home键监听封装
- 怎么样清除android手机长按home键后,出现的最近运行的6个任务中的指定一个的图标
- Android Home键按键事件监听
- Android 监听Home键按键事件
- Android 物理按键的监听Back,Menu和音量(不包括home键,锁屏键,以及长按菜单的监听
- Android返回键处理、任务和home键处理
- Git常用命令
- 无法定位程序输入点 _Z21qRegisterResourceDataiPKhS0_S0_
- opencart 3.0.0.0及mycncart2.0.0.0的重大改进之模板后台编辑
- CentOS 7 下的软件安装方法及策略
- PAT(甲级)A+B for Polynomials
- 系统按键:Home键和最近任务键的监听器简单封装
- eclipse设置xsd
- VMware-Workstation-Full-10.0.2-1744117.i386.bundle
- [总结]视音频编解码技术零基础学习方法
- JAVA之简易计算器
- 文本处理
- DrawRect()参数解析
- Java简单版的计算器
- 8.1.2