3

有没有办法获得android锁屏包名称?

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

4

3 回答 3

2

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

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

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

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

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

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

于 2013-06-02T08:27:33.057 回答
0

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

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

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

                  }
于 2014-12-09T09:57:18.960 回答
0

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

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

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

于 2014-12-09T15:21:11.267 回答