Я хочу заблокировать кнопки главного экрана и недавних приложений. Мне удалось переопределить физические кнопки с помощью такой службы доступности:
@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);
}
Есть предложения?