0

シナリオ:

フォアグラウンドで実行されているアクティビティがあります。しばらくすると、画面が自動的にロックされます。

後で、ロック画面に関係なく画面を再度表示する必要があるという新しいインテントを受け取りました..

このアクティビティがロック画面のすぐ後ろにあるときに画面をオンにするにはどうすればよいですか (ロックボタンをもう一度押すと、アクティビティが表示されます)

アクティビティを開始するときに画面をオンにする方法しか知らない

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

    // make incoming call show on locked screen
    getWindow().addFlags(
            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
                    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
}

アクティビティが既に作成された後、画面をオンにしたいのですが、onStop() の後にバックグラウンドにありました。

次のことを試しましたが、うまくいきません。

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);

    handleCallingIntent(intent);

    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    final PowerManager.WakeLock wl = pm.newWakeLock(
            PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "Incoming Call");
    wl.acquire();
    mDismissButton.postDelayed(new Runnable() {
        @Override
        public void run() {
            // just to test if screen will be on for 10s
            wl.release();
        }
    }, 10000L);
}
4

1 に答える 1

0

アクティビティがフォアグラウンドにあるときはいつでも、画面の明るさを変更する必要があります。

WindowManager.LayoutParams params = getWindow().getAttributes();
params.screenBrightness = 0;
getWindow().setAttributes(params);

さらに、明るさの値を -1/1 に設定して、さらに明るさを調整できます。

于 2015-09-15T10:58:03.283 に答える