Взаимодействие с экраном блокировки затруднено. 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)