Android 如何获取安卓锁屏软件包名称

Android 如何获取安卓锁屏软件包名称,android,package,lockscreen,Android,Package,Lockscreen,有没有办法获得安卓锁屏软件包的名称 我想使用AlertDialog.Builder在锁屏上显示警报。因此,我需要知道锁屏何时处于活动状态,以及它的软件包名称。您可以检测锁屏是否显示以下内容: ((KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE)).inKeyguardRestrictedInputMode(); 您可以通过以下方式获得当前最热门的活动: (ActivityManager) getSystemService(S

有没有办法获得安卓锁屏软件包的名称


我想使用
AlertDialog.Builder
在锁屏上显示警报。因此,我需要知道锁屏何时处于活动状态,以及它的软件包名称。

您可以检测锁屏是否显示以下内容:

((KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE)).inKeyguardRestrictedInputMode();
您可以通过以下方式获得当前最热门的活动:

(ActivityManager) getSystemService(Service.ACTIVITY_SERVICE).getRunningTasks(1).get(0).topActivity;
这通常是锁屏活动,但有可能在锁屏活动时显示手机应用程序:在这种情况下,这将是手机活动


您需要android.permission.GET_TASKS权限才能使其正常工作。

这真是一个简单的解决方案

KeyguardManager km = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE);

if( km.inKeyguardRestrictedInputMode()) {
               //it is locked

                  }

找到了本机解决方案。生成警报对话框后,在显示它之前,应用以下内容:

AlertDialog alertDialog = new AlertDialog.Builder(context).create();
        alertDialog.getWindow().setType(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
        alertDialog.show();

这将在锁屏顶部显示对话框。

@llya_Gazman它不工作,是否需要任何权限。@FaisalAhsan不,没有权限。