2011-01-24 37 views
2

我的應用程序設置報警。在等待報警時,我的手機關閉了屏幕。當鬧鈴響起時屏幕不亮,所以我按下電源鍵,屏幕亮起但我現在有觸摸鎖定按鈕,訪問應用程序接口。我寧願在用戶響應警報時鎖定已經關閉,因此我試圖使用電源管理器。警報接收器開始一個新的活動,所以我初始化onCreate的電源管理器進行這個活動。但是這會導致強制關閉錯誤。我打電話給電源管理器如下使用電源管理

PowerManager pm = (PowerManager)cText.getSystemService(Context.POWER_SERVICE); 
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK , TAG); 
    wl.acquire(); 

請任何建議。

回答

4

確實添加了動力mananger用途在未經許可的在你的清單?

0

你可以在應用程序上下文WL所以一旦其initlize並設置回那之後,當你釋放你將設置爲空值,並檢查一遍,如果其空比初始化再其他明智的採取,因爲它是。

3

既然問這個問題的人說他「有觸摸鎖定」按鈕,我認爲他正在談論的核心後衛。 (模式,Pin等)。您無法使用PowerManager API來禁用此功能。相反,你應該打開KeyGuard

KeyguardManager keyguardManager = 
     (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE); 
KeyguardManager.KeyguardLock lock = 
     keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); 
lock.disableKeyguard(); 

據我所知,這是禁用屏幕鎖定的正確方法。

您還需要這個權限

<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> 
+0

非常有幫助,三江源。 – Nick 2011-11-10 22:38:14