Показать активность, когда экран заблокирован как "Viber", "Line" appliaction

Как вы знаете, в таких приложениях, как "Viber", "Line" и..., когда новое сообщение получено устройством, всплывет новое действие и покажет сообщение пользователю, даже экран заблокирован, но экран блокировки не уволят Это происходит даже в "Xperia U" с android 2.3.7. Я хочу сделать то же самое в своем приложении, и я также попытался добавить следующий флаг в мое окно:

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

и также использовать wakelock, но он просто включает экран, не показывая мое приложение. И что же мне делать?

1 ответ

Вы можете отключить свой экран блокировки, используя следующий код.

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();
Другие вопросы по тегам