Intereting Posts
Intent – если активность запущена, переведите ее вперед, иначе запустите новую (от уведомления) Превышен лимит 64k ​​на более старых API, чем леденец, но не новый Простой способ сделать динамическую, но квадратную компоновку Ошибка привязки данных: разрешены только один элемент макета и один элемент данных. Показать подсказку, чтобы узнать местоположение Если активность убита, работает ли AsyncTask? Android AudioRecord для сервера по вопросам воспроизведения UDP Можно ли использовать iBeacon для передачи данных через bluetooth в iOS – Android? Как установить мыло Заголовок с помощью ksoap2 – android Прекратить обслуживание, когда приложение закрыто Android MediaScanner: удалить файлы изображений из галереи Как устранить сбои в системной библиотеке Android (libwebcore.so) «Содержимое имеет представление с атрибутом id« android.r.id.list », которое не является классом ListView.» При создании представления списка в фрагменте Невозможно найти R.xml.preferences? Интеграция функции «Поиск карт» в приложении для Android

Как начать диалог (например, будильник / повтор сигнала тревоги), который можно щелкнуть без разблокировки экрана

Я не хочу надолго обходить блокировку клавиатуры, только на тот момент. Например, когда сигнал тревоги поднят (например, сигнал будильника), я могу уволить / отложить его без экрана разблокировки. Я хочу добиться такого же поведения. Мне нужно начать диалог, который Должен быть сверху на заблокированном экране. Я могу нажать кнопку на диалоге без разблокировки. Возможно ли это? Если да, то как?

Я не хочу следующего:

private void unlockScreen(Context context){ Log.d("dialog", "unlocking screen now"); PowerManager powermanager = ((PowerManager)context.getSystemService(Context.POWER_SERVICE)); WakeLock wakeLock = powermanager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag"); wakeLock.acquire(); Window wind = DialogActivity.this.getWindow(); wind.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD); wind.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED); wind.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON); } 

Solutions Collecting From Web of "Как начать диалог (например, будильник / повтор сигнала тревоги), который можно щелкнуть без разблокировки экрана"

Может быть, это будет полезно. FLAG_SHOW_WHEN_LOCKED флажок флажка FLAG_SHOW_WHEN_LOCKED вместе с FLAG_TURN_SCREEN_ON в public WindowManager.LayoutParams ()

Или вы можете использовать класс KeyguardManager (устарел в API 13, но все еще работает)

 public KeyguardManager.KeyguardLock newKeyguardLock (String tag) 

FLAG_DISMISS_KEYGUARD используйте FLAG_DISMISS_KEYGUARD и / или FLAG_SHOW_WHEN_LOCKED ; Это позволяет вам с легкостью скрыть блокировку клавиатуры, когда ваше приложение перемещается и выходит из переднего плана и не требует, чтобы какие-либо специальные разрешения запрашивались. Позволяет блокировать или разблокировать клавиатуру. Получите экземпляр этого класса, вызвав Context.getSystemService() . Этот класс обернут KeyguardManager .

WindowManager.LayoutParams

KeyguardManager

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

Вы можете добавить флаги в текущее окно, например:

  win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON); 

Если вы не хотите, чтобы он был постоянным, просто очистив флаги, которые вы добавили, когда они вам не нужны, используйте метод: clearFlags (flags).

Если ваш тип окна установлен достаточно высоким. Вы можете показать свое окно над экраном блокировки.

WindowsParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;