100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 一个监听home键锁屏键的工具类

一个监听home键锁屏键的工具类

时间:2024-06-01 08:07:03

相关推荐

一个监听home键锁屏键的工具类

/*** Home键监听封装*/public class HomeWatcher {static final StringTAG= "HomeWatcher"; private Context mContext; private IntentFilter mFilter; private OnHomePressedListener mListener; private InnerRecevier mRecevier; // 回调接口 public interface OnHomePressedListener {public void onHomePressed(); public void onHomeLongPressed(); public void onScreenLocked(); }public HomeWatcher(Context context) {mContext = context; mFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); }/** *设置监听 * *@paramlistener */ public void setOnHomePressedListener(OnHomePressedListener listener) {mListener = listener; mRecevier = new InnerRecevier(); }/** *开始监听,注册广播 */ public void startWatch() {if (mRecevier != null) {mContext.registerReceiver(mRecevier, mFilter); }}/** *停止监听,注销广播 */ public void stopWatch() {if (mRecevier != null) {mContext.unregisterReceiver(mRecevier); }}/** *广播接收者 */ class InnerRecevier extends BroadcastReceiver {final String SYSTEM_DIALOG_REASON_KEY = "reason"; final String SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS = "globalactions"; final String SYSTEM_DIALOG_REASON_RECENT_APPS = "recentapps"; final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey"; final String SYSTEM_DIALOG_REASON_LOCK = "lock"; @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 (reason.equals(SYSTEM_DIALOG_REASON_LOCK)) {// 锁屏 mListener.onScreenLocked(); }}}}}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。