Показать всплывающее окно на экране блокировки

Я реализовал функцию идентификации вызывающего абонента, при которой, когда экран заблокирован, он должен открыть замок и показать всплывающее окно с именем вызывающего абонента.

это код, который я добавил в onCreate() PopupActivity.

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

Я также добавил разрешения

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

Это прекрасно работает, когда телефон не защищен паролем / шаблоном. Однако он показывает черный фон всплывающему окну, когда устройство защищено паролем / шаблоном, что не позволяет пользователю посещать / отклонять вызов.

1 ответ

Решение

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

Кажется, это работает для меня

Другие вопросы по тегам