web-dev-qa-db-ja.com

通知を受け取ったときに画面を明るくするandroid

アプリケーションが1時間ごとに通知を送信するサービスを実行しています。通知が原因で1時間ごとに音とバイブレーションが聞こえるので、これは正常に機能していますが、通知によって画面が明るくなることも望んでいます。しかし、通知が表示されても画面を明るくできません。

25
Pirate
PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
boolean isScreenOn = pm.isScreenOn();
Log.e("screen on.................................", ""+isScreenOn);
if(isScreenOn==false)
{
    WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK |PowerManager.ACQUIRE_CAUSES_WAKEUP |PowerManager.ON_AFTER_RELEASE,"MyLock");
    wl.acquire(10000);
    WakeLock wl_cpu = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"MyCpuLock");

    wl_cpu.acquire(10000);
}
51
Pradeep Sodhi

私の解決策があります:

createNotification(); //your implementation
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
boolean isScreenOn = Build.VERSION.SDK_INT >= 20 ? pm.isInteractive() : pm.isScreenOn(); // check if screen is on
if (!isScreenOn) {
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "myApp:notificationLock");
    wl.acquire(3000); //set your time in milliseconds
}

詳細 PowerManager

2
Jan Moravec