android捕獲Home鍵

發送廣播 Intent.ACTION_CLOSE_SYSTEM_DIALOGS,開始 Launch Home,根據這點,我們可以監聽廣播:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class InnerRecevier extends BroadcastReceiver {
  
        staticfinal String SYSTEM_DIALOG_REASON_KEY ="reason";
  
        staticfinal String SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS ="globalactions";
  
        staticfinal String SYSTEM_DIALOG_REASON_RECENT_APPS ="recentapps";
  
        staticfinal String SYSTEM_DIALOG_REASON_HOME_KEY ="homekey";
  
        @Override
        publicvoid 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) {
                    Lg.i("receive 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();
                        }
                    }
                }
            }
        }
  
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章