即使屏幕在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" />
另一答案
您可以通过两种方式实现此目的:
- 在这篇文章中使用@Yup解释的唤醒锁。
- 使用窗口标志。
使用窗口标志:
打开要在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
另一答案
- 清单文件给权限使用权限android:name =“android.permission.WAKE_LOCK”然后在你的需求活动onCreate()里面写代码
- 最终Window win = getWindow(); win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
以上是关于即使屏幕在Android中被锁定,也会启动活动屏幕的主要内容,如果未能解决你的问题,请参考以下文章
即使类别是 AVAudioSessionCategoryPlayback,AVAudioPlayer 也会在屏幕锁定时停止播放