Чтобы обнаружить блокировку экрана, даже когда приложение спит - PullRequest
0 голосов
/ 03 октября 2019

У меня есть приложение для Android, которое необходимо заблокировать (перенаправить на страницу входа в систему) всякий раз, когда пользователь нажимает кнопку блокировки. Пользователь может заблокировать телефон, находясь в моем приложении или на других приложениях / домашнем экране. В обоих этих случаях мне нужно, чтобы мое приложение было заблокировано.

Это работает нормально, если телефон заблокирован из приложения:

@Override
protected void onStop() {
    super.onStop();
    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    boolean isScreenOn = pm.isInteractive();
    if (!isScreenOn) {
        LogUtils.logD(TAG, "Screen is off, Locking the application");
        // Lock the application code
    }
}

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

1 Ответ

0 голосов
/ 03 октября 2019

Попытайтесь добавить еще и вернуться в конец кода, чтобы активность продолжала активироваться в фоновом режиме

@Override
protected void onStop() {
super.onStop();
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
boolean isScreenOn = pm.isInteractive();
if (!isScreenOn) {
    LogUtils.logD(TAG, "Screen is off, Locking the application");
    // Lock the application code
} else{
  return true;
}
...