2014-06-15 34 views
1

我試圖讓我的應用程序在x時間過後(使用警報管理器)重新啓用鍵盤保護程序。 基本上,這裏是我所做的:Android - 屏幕關閉時無法重新啓用鍵盤保護程序

比方說,我設置屏幕鎖定5分鐘後啓用。

  1. 我的應用程序啓動並禁用鍵盤鎖 - 非常棒!
  2. 我在3分鐘後創建了一個計時器(使用鬧鐘管理器)來鎖定屏幕,並在日誌中看到鬧鐘在3分鐘後關閉,重新啓用鍵盤鎖的代碼開始運行。屏幕在5分鐘後熄滅,然後點擊電源按鈕並啓用鍵盤鎖 - 非常棒! 基本上,只要一切都在屏幕開啓時完成,一切正常。

現在讓我們說我們保持相同的情況下同上,但更改步驟2:

  1. 同上
  2. 我創建了一個計時器(使用警報管理器)10後鎖定屏幕分鐘。 5分鐘後屏幕熄滅,我仍然看到日誌中警告10分鐘後報警正常,並重新啓用鍵盤鎖。但是,當我點擊電源按鈕後,我仍然可以進入應用程序而不會遇到鎖定屏幕。如果我點擊電源按鈕或等待屏幕再次關閉,我會遇到鎖定屏幕。

這似乎表明,重新啓用鍵盤鎖只會在屏幕重新啓動後生效,並且在屏幕關閉時無法啓用它。我錯了還是有其他方法呢? 即使代碼在屏幕關閉時重新啓用鎖定防護裝置,我也希望能夠將用戶踢回鎖定屏幕。

謝謝!

回答

0

答案是使用:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); 
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, this.getClass().getSimpleName()); 
wl.acquire(); 

之前重新啓用鍵盤鎖

+0

尼斯一個 - 這看起來像一個解決類似的問題,我有。重新啓用鍵盤鎖後,您是否釋放了喚醒鎖? – DaveDev

相關問題