Взаємодія з блокованим екраном утруднена. Android дозволяє виконувати основні операції з двома прапорами вікон (FLAG_SHOW_WHEN_LOCKED та FLAG_DISMISS_KEYGUARD). FLAG_SHOW_WHEN_LOCKED працює досить послідовно, оскільки відображатиметься у верхній частині екрана блокування, навіть коли безпека ввімкнена (безпека не обійдена, ви не можете переключитися на інше вікно, що не є FLAG_SHOW_WHEN_LOCKED).
Якщо ви просто робите щось тимчасове, наприклад, під час відтворення музики або подібного, з вами, мабуть, все буде добре. Якщо ви намагаєтеся створити власний екран блокування, то на багатьох різних платформах Android існує безліч незвичних взаємодій. ("Довідка! Я не можу вимкнути будильник, не перезавантаживши телефон HTC").
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html
FLAG_SHOW_WHEN_LOCKED
Прапор вікна: спеціальний прапорець, що дозволяє відображати вікна, коли екран заблокований.
FLAG_DISMISS_KEYGUARD
Прапор вікна: якщо встановлено, вікно призведе до відхилення блокування клавіатури, лише якщо це не захищена блокування. Оскільки така захисна клавіатура не потрібна для безпеки, вона ніколи не з’явиться повторно, якщо користувач перейде в інше вікно (на відміну від FLAG_SHOW_WHEN_LOCKED, яке лише тимчасово приховує як захищені, так і незахищені блокування, але гарантує, що вони знову з’являться, коли користувач перейде до інший інтерфейс, який їх не приховує). Якщо в даний час захисна клавіатура активна і захищена (вимагає шаблон розблокування), користувачеві все одно доведеться підтвердити це, перш ніж побачити це вікно, якщо також не встановлено FLAG_SHOW_WHEN_LOCKED. Постійне значення: 4194304 (0x00400000)