Как отключить физические кнопки назад, домой, многозадачность? - PullRequest
0 голосов
/ 06 июня 2018

На самом деле я разрабатываю приложение, и только это приложение должно быть открыто на устройстве, на котором он установлен, чтобы я мог блокировать / отключать физические кнопки для возврата, домой, многозадачности.

У меня естьПрочтите еще несколько статей о том, как это сделать, но до сих пор не можете понять, как реализовать это в моем приложении.

Кнопки, которые я бы отключил, являются следующими, которые вы можете видеть на фотографии enter image description here

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

// Просто поместите ниже метод onStart () кода

@Override
    protected void onStart() {
        super.onStart();
        // start lock task mode if it's not already active
        ActivityManager am = (ActivityManager) getSystemService(
                Context.ACTIVITY_SERVICE);
        // ActivityManager.getLockTaskModeState api is not available in pre-M.
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
            if (!am.isInLockTaskMode()) {
                startLockTask();
            }
        } else {
            if (am.getLockTaskModeState() ==
                    ActivityManager.LOCK_TASK_MODE_NONE) {
                startLockTask();
            }
        }


    }
0 голосов
/ 06 июня 2018

Для back button Вы можете Override onBackPressed метод, как показано ниже: -

@Override
public void onBackPressed() {
    // do what you want
}

Для Home Button

@Override
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}

Для отключения recent app кнопка: -

Шаг 1

Добавить это разрешение в файл manifest.xml

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

Шаг 2

Поместите этот код в любое действие, для которого вы хотите заблокировать / отключить кнопку недавних приложений

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

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

    activityManager.moveTaskToFront(getTaskId(), 0);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...