2011-01-24 6 views
2

私のアプリはアラームを設定します。アラームを待つ間、私の電話は画面を閉じます。アラームが鳴ると画面が暗くなって電源キーを押して画面が点灯しますが、ロックボタンをタッチしてアプリケーションインターフェイスにアクセスする必要があります。ユーザーがアラームに応答したときにロックが解除されているので、パワーマネージャを使用しようとしました。アラームレシーバは新しいアクティビティを開始するので、このアクティビティのonCreateでパワーマネージャを初期化しました。しかし、これは強制終了エラーを引き起こす。私は次のようにパワーマネージャーを呼び出しますパワーマネージャを使用

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

ご提案ください。

答えて

4

マニフェストにpower manangerの使用許可を追加しましたか?

0

あなたはアプリケーションコンテキストでwlを取ることができます。そうすれば、そのinitlizeを一度変更すると、それを解放した後にnullを設定し、initよりもnullの場合はもう一度チェックします。

3

質問をした人は、「ロックボタンに触れなければならない」と述べているので、キーガードについて話していると思います。 (パターン、ピンなど)。 PowerManager APIを使用してこれを無効にすることはできません。代わりに、キーガードを無視する必要があります

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

関連する問題