Как переопределить виртуальные кнопки и жесты (кнопки главного экрана и недавних приложений) в android? - PullRequest
1 голос
/ 14 июля 2020

Я хочу заблокировать кнопки главного экрана и недавних приложений. Мне удалось переопределить физические кнопки с помощью такой службы доступности:

 @Override
public boolean onKeyEvent(KeyEvent event) {
    final String keyCode = KeyEvent.keyCodeToString(event.getKeyCode());
    if ( //home btn
            (KeyEvent.KEYCODE_HOME == event.getKeyCode() /*htc*/
                    || KeyEvent.KEYCODE_MENU == event.getKeyCode() /*xiaomi*/
                    || KeyEvent.KEYCODE_APP_SWITCH == event.getKeyCode() /*samsung*/

                    // recents btn
                    || KeyEvent.KEYCODE_APP_SWITCH == event.getKeyCode() /*samsung*/

                    /*Volume*/
                    || KeyEvent.KEYCODE_VOLUME_DOWN == event.getKeyCode()
                    || KeyEvent.KEYCODE_VOLUME_UP == event.getKeyCode())
    ) {
        return true;
    }
    return false;
}

, но виртуальные кнопки и android 10 жестов функция onKeyEvent () не вызываются, и я не могу переопределить домашний и недавний кнопки приложений. Я ищу решение, которое действительно блокирует, а не хакерское решение, такое как

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

и

    @Override
    protected void onPause() {
        super.onPause();

        ActivityManager activityManager = (ActivityManager) getApplicationContext()
                .getSystemService(Context.ACTIVITY_SERVICE);

        activityManager.moveTaskToFront(getTaskId(), 0);
}

Есть предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...