棒棒糖键盘保护未解除?

3
我正在开发一款应用程序,它在特定的时间应该唤醒设备并解除键盘保护以显示某些活动,直到用户将其关闭。因此,该
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
                    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);

在安卓棒棒糖版本上无法正常工作,然而在之前的安卓版本上完美运行!!有任何建议?

1个回答

0

这是可行的解决方案:

BroadcastReceiver 类

@Override
public void onReceive(Context context, Intent intent) {
    mWakeLock = ((PowerManager) context.getApplicationContext().getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "TAG");
    if (!mWakeLock.isHeld()) {
        mWakeLock.acquire();
    }
    Intent intent = new Intent(context, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent);
    mWakeLock.release();
}

MainActivity 类

@Override
public void onCreate(Bundle bundle) {
    super.onCreate(bundle);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN |
                    WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
                    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
                    WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
            WindowManager.LayoutParams.FLAG_FULLSCREEN |
                    WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
                    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
                    WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
setContentView(R.layout.activity);
....
}

现在它甚至可以在Android Lollipop 5.0.1上运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接