3

如您所知,在“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);

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

4

1 回答 1

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" />

在 onPause() 或 onDestroy() 上。

wl.release();
于 2017-02-06T07:59:11.943 回答