Is there a way to get the android lockscreen package name?
I want to show alert on the lockscreen using AlertDialog.Builder
. So I need to know when the lockscreen is active and what it's package name.
Is there a way to get the android lockscreen package name?
I want to show alert on the lockscreen using AlertDialog.Builder
. So I need to know when the lockscreen is active and what it's package name.
Found a native solution. After you build the Alert dialog and before showing it, apply this:
AlertDialog alertDialog = new AlertDialog.Builder(context).create();
alertDialog.getWindow().setType(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
alertDialog.show();
This will show the dialog on top of the lock screen.
You can detect if the lockscreen is shown with:
((KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE)).inKeyguardRestrictedInputMode();
And you can get the current top activity with:
(ActivityManager) getSystemService(Service.ACTIVITY_SERVICE).getRunningTasks(1).get(0).topActivity;
This will usually be the lockscreen activity, but it is possible that for example the phone app is shown while the lockscreen is active: in this case it will be the phone activity.
You will need the android.permission.GET_TASKS permission for this to work.
Really a Simple solution.
KeyguardManager km = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE);
if( km.inKeyguardRestrictedInputMode()) {
//it is locked
}
Found a native solution. After you build the Alert dialog and before showing it, apply this:
AlertDialog alertDialog = new AlertDialog.Builder(context).create();
alertDialog.getWindow().setType(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
alertDialog.show();
This will show the dialog on top of the lock screen.
© 2022 - 2024 — McMap. All rights reserved.