【问题标题】:How do I get android lockscreen package name如何获取 android 锁屏包名称
【发布时间】:2012-10-09 23:03:36
【问题描述】:

有没有办法获取android锁屏包名?

我想使用AlertDialog.Builder 在锁定屏幕上显示警报。所以我需要知道锁屏何时激活以及它的包名。

【问题讨论】:

    标签: android package lockscreen


    【解决方案1】:

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

    ((KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE)).inKeyguardRestrictedInputMode();
    

    您可以通过以下方式获取当前的热门活动:

    (ActivityManager) getSystemService(Service.ACTIVITY_SERVICE).getRunningTasks(1).get(0).topActivity;
    

    这通常是锁屏活动,但也有可能在锁屏处于活动状态时显示手机应用程序:在这种情况下,它将是手机活动。

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

    【讨论】:

      【解决方案2】:

      确实是一个简单的解决方案。

      KeyguardManager km = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE);
      
      if( km.inKeyguardRestrictedInputMode()) {
                     //it is locked
      
                        }
      

      【讨论】:

        【解决方案3】:

        找到了本机解决方案。在构建警报对话框之后,在​​显示它之前,应用这个:

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

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

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-22
        • 1970-01-01
        • 1970-01-01
        • 2017-04-24
        • 2012-01-28
        • 2021-11-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多