Android, Блокировка устройства прагматично

Я хочу, чтобы блокировка экрана (Swipe, Pattern, Password или pin) автоматически блокировалась после завершения вызова.

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

Я успешно обхожу блокировку с кодом ниже:

Разрешение:

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

Код для разблокировки устройства:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
if(!pm.isScreenOn()) {
    sendNotification("CALL_STATE_IDLE_SRC_OFF");
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE | PowerManager.ACQUIRE_CAUSES_WAKEUP, TAG);
    KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE);
    KeyguardManager.KeyguardLock lock = keyguardManager.newKeyguardLock(TAG);
    lock.disableKeyguard();
    wl.acquire();
    wl.release();
} else {
    sendNotification("CALL_STATE_IDLE_SRC_ON");
}
Intent intent = new Intent(this, Name_of_Activity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP 
                | Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT 
                | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON
        + WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
        + WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
intent.putExtra("Call", "true");
getApplicationContext().startActivity(intent);

Но я не смог заблокировать устройство, когда мой звонок закончился.

Код для блокировки устройства:

KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE);
        KeyguardManager.KeyguardLock lock = keyguardManager.newKeyguardLock(TAG);
        lock.reenableKeyguard();

0 ответов

Другие вопросы по тегам