即使屏幕被锁定,如何在设备上启动活动 . 我尝试如下,但它不起作用 .
广播接收器:
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);
4 回答
您需要
AndroidManifest.xml
文件中的以下权限:检查清单详细信息here . 你可以查询这个link .
您可以通过两种方式实现这一目标:
使用唤醒锁,正如@Yup在这篇文章中解释的那样 .
使用窗口标志 .
Using window flags:
打开要在
onReceive(...)
中启动的活动A.将其粘贴到该活动A的onCreate()
中确保你没有在
setContentView(...)
之前粘贴它:-)关于屏幕是锁定还是解锁,您可以查看here .
然后,您可以使用唤醒锁定和电源管理选项来维护屏幕而不会被锁定 . 你可以找到帮助here
清单文件赋予权限uses-permission android:name = "android.permission.WAKE_LOCK"然后在您的需求活动onCreate()中写入代码
final Window win = getWindow(); win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);