Android 捕獲HOME鍵

支持平臺Android4.4

應用程序裏大部分按鍵都可以捕獲,除了HOME鍵。

要捕獲HOME鍵,需要增加權限。

<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>


和正常按鍵獲取一樣

//Activity應用
@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		switch (keyCode) {
			case KeyEvent.KEYCODE_HOME:
			//TODO
			break;
		}
		return super.onKeyDown(keyCode, event);
	}

做法就是增加一個權限。這個方法在後續的平臺都不支持。

新的做法,在Android8.1測試通過

註冊一個關閉的APP的廣播來判斷

 private class HomeKeyClickReceiver extends BroadcastReceiver {
        private static final String TAG = "KeyPress";
        String SYSTEM_REASON = "reason";
        String SYSTEM_HOME_KEY = "homekey";
        @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_REASON);
                if (TextUtils.equals(reason, SYSTEM_HOME_KEY)) {
                    Log.d(TAG, "home key clicked!");
                    Toast.makeText(MainActivity.this, "Home被按壓", Toast.LENGTH_SHORT).show();
                }
            }
        }
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章