android - 即使屏幕在 Android 中被锁定,启动 Activity 屏幕

标签 android android-activity broadcastreceiver screen-lock

即使屏幕已锁定,如何在设备上启动 Activity。我试过如下但它不工作。

广播接收器:

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);

最佳答案

您可以通过两种方式实现这一目标:

  1. 按照@Yup 在这篇博文中的说明使用唤醒锁。

  2. 使用窗口标志。

使用窗口标志:

onReceive(...) 中打开您想要启动的Activity A。将此粘贴到 Activity 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(...) 之前粘贴它 :-)

关于android - 即使屏幕在 Android 中被锁定,启动 Activity 屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20113161/

相关文章:

android - 分离 fragment 不触发 onSaveInstanceState()

android - 无法解决结果的 Activity

Android:从 fragment 调用时如何从 Activity 中获取返回结果?

android - 触发android图像选择器 Intent 时仅从图库中检索图像

android - 通过警报管理器在特定时间创建通知

Android (JNI/NDK) OpenGL - FPS 显示帮助

android - 在 Android Market 中发布应用程序的优势

android - 是否可以在 android 中录制直播视频?

java - BroadcastReceiver for android.net.conn.CONNECTIVITY_CHANGE 是否实际检查互联网连接?

android - 我应该如何编码这个广播接收器来检查互联网并根据它执行操作