Android 監聽home鍵的動作
1.自定義一個類,繼承自BroadcastReceiver
/** * 監聽按下home鍵動作的廣播 */ class HomeReceiver extends BroadcastReceiver { private final String SYSTEM_DIALOG_REASON_KEY = "reason"; private final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey"; @Override public void onReceive(Context context, Intent intent) { Log.d(TAG, "onReceive: is home"); String action = intent.getAction(); if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) { Log.d(TAG, "onReceive: action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)"); String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY); Log.d(TAG, "onReceive: reason == " + reason); if (null == reason) { Log.d(TAG, "onReceive: null == reason"); return; } //home鍵 if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) { Log.d(TAG, "onReceive: reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)"); try { if (null != mCarPlayService) { int key = mCarPlayService.sendKey(2, true); Log.d(TAG, "honeKey is " + key); } else { Log.d(TAG, "onReceive: null == mCarPlayService"); } } catch (RemoteException e) { e.printStackTrace(); } clickHomeListener(); } else { Log.d(TAG, "onReceive: reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY) is not"); } } else { Log.d(TAG, "onReceive: action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS) is not"); } } }2.註冊監聽
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.d(TAG, "onActivityCreated: "); mActivity = getActivity(); mHomeReceiver = new HomeReceiver(); IntentFilter homeFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); mActivity.registerReceiver(mHomeReceiver, homeFilter);}3.解除監聽
@Override public void onDestroy() { super.onDestroy(); Log.d(TAG, "onDestroy: "); mActivity.unregisterReceiver(mHomeReceiver); }
相關文章
- Android Home鍵、鎖屏鍵監聽Android
- AndroidTV開發中所有的遙控器按鍵監聽及注意事項,新增home鍵監聽Android
- android PopupWindow監聽返回鍵無效Android
- Android監聽軟鍵盤收起與彈出Android
- H5頁面監聽Android物理返回鍵H5Android
- java鍵盤監聽之視窗監聽的實現Java
- Android 監聽鍵盤狀態變化,並獲取鍵盤高度Android
- 監聽鍵盤事件事件
- Android截圖監聽Android
- Android Home鍵之後啟動Activity延遲5sAndroid
- python pynput監聽鍵盤Python
- flutter中監聽鍵盤Flutter
- 2018.03.31、Android-ObjectBox-監聽AndroidObject
- Android開發之監聽軟鍵盤狀態(彈出收回)Android
- web app 中物理返回鍵的監聽WebAPP
- Android的事件處理——監聽介面方式Android事件
- vue的監聽鍵盤事件的快捷方法Vue事件
- 安卓使用物理鍵監聽器安卓
- Android搖一搖、螢幕方向的監聽Android
- 如何監聽頁面關閉或重新整理動作
- Android 監聽生命週期工具庫Android
- Android掃碼槍監聽封裝Android封裝
- Echarts 監聽滑鼠右鍵或者雙擊Echarts
- 監聽div滾動高度
- Android studio(建立、監聽器intent選單)AndroidIntent
- Mac監控鍵盤輸入並執行動作Mac
- Android多程式之Binder解綁監聽的問題Android
- 監聽 watch props物件屬性監聽 或深度監聽物件
- Android監聽使用者行為操作(AccessibilityService)Android
- 啟動資料庫監聽資料庫
- Oracle啟動兩個監聽Oracle
- flutter 中監聽滑動事件Flutter事件
- 監聽滾動,上下翻頁
- uniapp打包成apk,監聽安卓手機的返回鍵APPAPK安卓
- 在duplicate時,出現監聽BLOCKED的情況,導致監聽自動關閉BloC
- h5監聽手機鍵盤彈起H5
- Android開屏、鎖屏、解鎖監聽實現Android
- rac監聽不能動態註冊
- vue 監聽頁面滾動事件Vue事件