Как разблокировать экран при вызове BroadcastReceiver?

Как вы можете догадаться, я регистрирую будильник AlarmManager. И BroadcastReceiver будет вызван правильно. Но когда он вызвал, мой экран телефона все еще заблокирован. Я заметил, что приложение AlarmClock по умолчанию не похоже на это. Итак, мой вопрос: как разблокировать экран при вызове BroadcastReceiver? (Разблокировать экран может заставить пользователя управлять моей деятельностью напрямую) Спасибо заранее.

Исходный код для будильника находится в исходном коде Android. AlarmClock отсутствует, но был заменен DeskClock. Исходный код здесь . Я быстро взглянул на код, и их приемник, похоже, использует KeyguardManager . Проверьте документы, которые, похоже, хотят вас.

EDIT: Я добавлю ваши результаты здесь. Этот код должен делать:

final Window win = getWindow(); win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 

Откройте действие A, с которого вы хотите начать с onReceive (….). Вставьте это в onCreate () этой операции A

  final Window win= getWindow(); win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 

Убедитесь, что вы не вставляете его перед setContentView (….) 🙂