1

Androidアプリケーションを作成しましたが、問題が発生しました。

アプリケーションが実行中で、デバイスの電源をオフにすると、約8秒後にウェイクアップし、画面がオンになり、アプリケーションが再び表示されることがあります。

私の質問は次のとおりです。どのイベントまたは処理の制約(ブロードキャストインテントの処理など)がデバイスをウェイクアップしますか?

編集:RCT_WAKEUPのアラームはデバイス画面をオンにしますか?

前もって感謝します!

4

1 に答える 1

1

AlarmManager が実際に画面をオンにするわけではありません。代わりにウェイクロックを使用できます。

PowerManager.WakeLock wakelock;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    .........

    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    wakelock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
                | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "AlarmReceiver");
    wakelock.acquire();       
}

アクティビティが完了したら、必ずウェイクロックを解放してください。

@Override
protected void onStop() {
    super.onStop();
    wakelock.release();
}

また、マニフェスト ファイルに wake lock 権限を追加する必要があります。

<uses-permission android:name="android.permission.WAKE_LOCK"/>

または、この追加のアクセス許可を含めたくない場合は、ウェイクロックを使用する代わりに、アクティビティで次のコードを使用できます。

this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN |
                WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
                WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
                WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
                WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
于 2013-03-04T00:22:07.477 に答える