Виджет экрана Android Lock

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

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

Любые подсказки о том, где я больше узнаю о создании настоящих виджетах блокировки экрана?

Ответ 1

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

Флаг окна: если установить окно, это приведет к тому, что keyguard будет отклоняется, только если он не является безопасным блокировка блокировки клавиатуры. Потому что такая блокировка клавиатуры для безопасности не требуется. никогда не появляться, если пользователь переводит в другое окно (в отличие от FLAG_SHOW_WHEN_LOCKED, который будет временно скрыть как безопасные, так и не защищенные блокировки клавиатуры, но появляться, когда пользователь переходит к другой пользовательский интерфейс, который не скрывает их). Если в настоящее время активна блокировка клавиатуры (требуется шаблон разблокировки) чем пользователь все равно должен будет подтвердите это перед просмотром этого окна, если FLAG_SHOW_WHEN_LOCKED также были установлены.     Постоянное значение: 4194304 (0x00400000)

Ответ 2

Документ виджетов официального окна блокировки здесь

Ответ 3

Мне пришлось реализовать виджет блокировки экрана для моего проекта. В этом процессе я накопил несколько ресурсов.

  • Если у вас есть приложение, которое вы хотите поместить на экран блокировки, сначала сделать его appwidget. Для этого вы можете использовать класс AppWidget.
  • Теперь, используя класс AppWidgetHost от Android API до , сделайте ваш заблокированный экран хостом для виджетов. Я не знаю, как это сделать, но есть некоторые существующие реализации, такие как mylockandroid (ссылки ниже).

Ресурсы

http://code.google.com/p/mylockforandroid/ (NB Этот код предназначен для более старых версий Android. Android 4.2 и выше имеют встроенную поддержку виджет-скриншотов)

http://mylockandroid.blogspot.com/2010/03/widget-lockscreen-beta-11-r2.html