How do I get android lockscreen package name

后端 未结 3 1179
遇见更好的自我
遇见更好的自我 2021-01-14 15:47

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

相关标签:
3条回答
  • 2021-01-14 16:26

    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.

    0 讨论(0)
  • 2021-01-14 16:33

    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.

    0 讨论(0)
  • 2021-01-14 16:37

    Really a Simple solution.

    KeyguardManager km = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE);
    
    if( km.inKeyguardRestrictedInputMode()) {
                   //it is locked
    
                      }
    
    0 讨论(0)
提交回复
热议问题