有没有办法获得android锁屏包名称?
我想使用在锁屏上显示警报AlertDialog.Builder
。所以我需要知道锁屏何时激活以及它的包名。
有没有办法获得android锁屏包名称?
我想使用在锁屏上显示警报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();
这将在锁定屏幕顶部显示对话框。