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();
                }
            }
        }
    }

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