Lollipop keyguard not fired?

I am developing an application that has to wake up the device at certain points in time and drop the keyboard lock in order to display any activity until the user rejects it. So,

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
                    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);

      

doesn't work on Android Lollipop, meanwhile it works great on pre-Android versions! Any suggestions?

+3


source to share


1 answer


This is a working solution:

BroadcastReceiver class

@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 class

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

      

And now it even works on Android Lollipop 5.0.1

0


source







All Articles