android - 屏幕锁定时显示 Activity ,如 "Viber", "Line"应用程序

标签 android screen-lock

如您所知,在“Viber”、“Line”等应用程序中,当设备接收到新消息时,新 Activity 将弹出并向用户显示消息,即使屏幕已锁定,但锁屏不会关闭。这甚至发生在带有 android 2.3.7 的“Xperia U”中。我想在我的应用程序中做同样的事情,我还尝试将以下标志添加到我的窗口中:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);

还使用唤醒锁,但它只是打开屏幕而不显示我的应用程序。那么,我该怎么办?

最佳答案

您可以使用以下代码禁用锁屏。

PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
    wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
            | PowerManager.ACQUIRE_CAUSES_WAKEUP
            | PowerManager.ON_AFTER_RELEASE, "INFO");
    wl.acquire();

    KeyguardManager km = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
    kl = km.newKeyguardLock("name");
    kl.disableKeyguard();

list 上的必要权限。

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

在 onPause() 或 onDestroy() 上。

wl.release();

关于android - 屏幕锁定时显示 Activity ,如 "Viber", "Line"应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16606503/

相关文章:

android - 检查activity的onPause状态是否被锁屏调用

android - 如何知道上下文中启动了哪些 Activity ?

android - 防止隐藏的状态栏在屏幕锁定后重新出现

javascript - 如何让 android 在手机和平​​板电脑的应用程序中佩戴振动?

java - 将所有字段名称从 firestore 文档获取到 arraylist

android - 在图库中将图像从一个文件夹复制到另一个文件夹

android - 如何使用语音命令绕过 android 主屏幕锁定来激活应用程序?请给我一些指导方针

android - 单击更改小部件可见性

android - 动态更改 View 宽度不起作用

c++ - 如何设置在 Windows 登录屏幕上打开应用程序的按钮