Программное включение экрана в Android

Я разрабатываю приложение для будильника. Из основного действия я устанавливаю будильник с помощью трансляции. Затем в onReceive в широковещательном приемнике я вызываю действие, которое позволяет пользователю выключить или отложить будильник... В этом действии в начале onCreate я использую эти строки, чтобы включить экран и разблокировать устройство:

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);

Это работает идеально подходит для Samsung Galaxy S2 с Android 2.3.4, но не работает на htc с Android 2.3.5. На htc он ничего не делает, и когда я нажимаю кнопку блокировки, экран автоматически разблокируется, и я не перетаскиваю кружок. Как будто flag_dissmiss_keygard работает, а flag_turn_screen_on нет. Есть ли другой способ или другое решение для этого?

10
задан user1177122 1 April 2012 в 17:23
поделиться