2014-06-13 11 views
0

Я хочу проснуться и воспроизвести видео. Вот мой фрагмент кода, чтобы проснуться и отключить защиту ключа.Как просыпаться устройство Android от сна и играть видео

pm = (PowerManager) getApplicationContext().getSystemService(
    Context.POWER_SERVICE); 
keyguardManager = (KeyguardManager) getApplicationContext() 
    .getSystemService(Context.KEYGUARD_SERVICE); 
KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG"); 
wakeLock = pm.newWakeLock(
     (PowerManager.SCREEN_BRIGHT_WAKE_LOCK 
      | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), 
     "TAG"); 
wakeLock.acquire(); 
keyguardLock.disableKeyguard(); 
playVideo(getApplicationContext()); 
wakeLock.release(); 

Видео воспроизводится, но устройство не просыпается.

Любые предложения?

EDITED
Я нашел рабочее решение, и я отправил его в качестве ответа.
Если есть лучшие решения, я хотел бы узнать и узнать об этом.
Спасибо.

+0

«Видео воспроизводится, но устройство не просыпается» ??? –

+0

Да Mr_and_Mrs_D. Экран выключен, но видео воспроизводится в фоновом режиме. – vidulaJ

+0

Где этот код snipet? В службе? –

ответ

0

После некоторых проблем и проблем я нашел рабочее решение.

Я внедрил BroadcastReceiver в действие (LoginActivity), которое я хочу, чтобы видеозапись (ScreenSaverActivity) была вызвана, когда экран будет спать. Внутри метода onCreateScreenSaverActivity у меня был приведенный выше фрагмент кода, как упоминалось в вопросе.
Я думаю, что это ошибка, чтобы поставить wakelock.release вместе с wakelock.aquire. Затем я попытался добавить эти три строки в ScreenSaverActivity и изменил приведенный выше фрагмент кода следующим образом, что в итоге сработало;

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);  

    keyguardManager = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE); 
    keyguardLock = keyguardManager.newKeyguardLock("TAG"); 

    wakeLock = pm.newWakeLock((PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG"); 
    wakeLock.acquire(); 

    keyguardLock.disableKeyguard(); 

    playVideo(); 


И я положил,
keyguardLock.reenableKeyguard();
wakeLock.release();
после остановки видео и, прежде чем вернуться к предыдущей (LoginActivity) деятельности.
Есть ли лучший ответ. Я хотел бы узнать и узнать об этом.

 Смежные вопросы

  • Нет связанных вопросов^_^