我如何获得android锁屏包名

时间:2012-10-19 10:33:23

标签: android package lockscreen

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

我想使用AlertDialog.Builder在锁屏上显示提醒。所以我需要知道锁屏何时处于活动状态以及它的包名是什么。

3 个答案:

答案 0 :(得分:2)

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

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

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

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

这通常是锁屏活动,但有可能在锁屏活动时显示电话应用:在这种情况下,它将是电话活动。

您需要获得android.permission.GET_TASKS权限才能生效。

答案 1 :(得分:0)

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

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

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

                  }

答案 2 :(得分:0)

找到原生解决方案。在构建“警告”对话框之后,在​​显示它之前,请应用此:

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

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

相关问题