活动在前台时,如何在用户锁定屏幕后再次打开屏幕

时间:2015-09-15 10:43:46

标签: android android-windowmanager powermanager android-powermanager

情景:

我有一个在前台运行的活动.. 过了一会儿,屏幕会自动锁定。

稍后,我收到一个新的Intent,无论锁定屏幕如何,都需要再次显示屏幕..

当此活动位于锁定屏幕后面时,我应该如何打开屏幕(当您再次按下锁定按钮时,您将看到活动)

我只知道在开始活动时如何打开屏幕

@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);
}

1 个答案:

答案 0 :(得分:0)

只要活动在前景,您就应该更改屏幕亮度。

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

此外,您可以将亮度值设置为-1/1以获得更多亮度功能。