显示活动当屏幕被锁定时,如“Viber”,“Line”应用程序

时间:2013-05-17 10:10:13

标签: android screen-lock

如您所知,在“Viber”,“Line”等应用程序中,当设备接收到新消息时,新活动将弹出并向用户显示消息,即使屏幕已锁定但是锁屏不会解雇。这甚至发生在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);

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

1 个答案:

答案 0 :(得分:0)

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

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

清单上的必要许可。

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

on onOause()或onDestroy()。

wl.release();