即使屏幕在Android中被锁定,也会启动活动屏幕

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了即使屏幕在Android中被锁定,也会启动活动屏幕相关的知识,希望对你有一定的参考价值。

即使屏幕被锁定,如何在设备上启动活动。我尝试如下,但它不起作用。

广播接收器:

Intent alarmIntent = new Intent("android.intent.action.MAIN");
        alarmIntent.setClass(context, Alarm.class);
        alarmIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        alarmIntent.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED +
                             WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD +
                             WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON +
                             WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
        context.startActivity(alarmIntent);
答案

您需要AndroidManifest.xml文件中的以下权限:

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />

检查清单详细信息here。你可以查询这个link

另一答案

您可以通过两种方式实现此目的:

  1. 在这篇文章中使用@Yup解释的唤醒锁。
  2. 使用窗口标志。

使用窗口标志:

打开要在onReceive(...)中启动的活动A.将其粘贴到活动A的onCreate()

final Window win= getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

确保你没有在setContentView(...)之前粘贴它:-)

另一答案

在屏幕被锁定后,在setContentView()之后将其粘贴到要打开的活动的onCreate方法中

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON|
        WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD|
        WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED|
        WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 
另一答案

您可以检查here屏幕是锁定还是解锁。

然后,您可以使用唤醒锁定和电源管理选项来维护屏幕而不会被锁定。你可以找到帮助here

另一答案
  1. 清单文件给权限使用权限android:name =“android.permission.WAKE_LOCK”然后在你的需求活动onCreate()里面写代码
  2. 最终Window win = getWindow(); win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

以上是关于即使屏幕在Android中被锁定,也会启动活动屏幕的主要内容,如果未能解决你的问题,请参考以下文章

锁定屏幕上的 Android 活动

即使类别是 AVAudioSessionCategoryPlayback,AVAudioPlayer 也会在屏幕锁定时停止播放

Android 全屏通知不会显示在锁定屏幕上

活动开始但在屏幕关闭或锁定时不可见

默认锁定屏幕上的 Android 活动

即使应用程序没有运行,Android也会在解锁屏幕后自动运行应用程序