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

业无高卑志当坚,男儿有求安得闲?这篇文章主要讲述即使屏幕在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屏幕是锁定还是解锁。
【即使屏幕在Android中被锁定,也会启动活动屏幕】然后,您可以使用唤醒锁定和电源管理选项来维护屏幕而不会被锁定。你可以找到帮助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);

    推荐阅读