Отображение входящего звонка VOIP в верхней части экрана блокировки в Зефир

Я работаю над приложением вызова VOIP. Когда входящий вызов появляется до версии 5.0 для Android, входящий вызов отображается сверху на экране блокировки, но начиная с версии 6.0 он отображается как уведомление. Экран вызова не появляется.

После выполнения некоторых НИОКР добавили следующий код ниже перед setContentVies(),

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

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

1 ответ

После получения push-уведомления VOIP на моем приемнике я запускаю свой пользовательский входящий вызов Activity, который переопределяет метод onAttachedToWindow следующим образом:

@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    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);
}

Это хорошо работает для меня в Android 4.4 до Android 8.0, я не пробовал пока в других версиях ОС. Я могу принимать входящие пользовательские звонки из своего приложения поверх заблокированного и разблокированного экрана.

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