Это сработало для меня с несколькими дополнениями:
В BroadcastReceiver я добавил следующие строки к намерению:
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
Кроме того, я добавил задержку примерно на 1,5 секунды, прежде чемЯ запускаю действие PopupWindow, чтобы убедиться, что оно идет после экрана системы входящих вызовов.
В файле манифеста я добавил:
<activity android:name=".PopUpIncomingCallActivity"
android:theme="@android:style/Theme.Translucent">
</activity>
, чтобы убедиться, что расположение всплывающего экрана соответствуетполупрозрачный.
В XML-файле макета Popupscreen я добавил следующие свойства:
android:windowAnimationStyle="@android:style/Animation.Translucent"
android:windowBackground="@android:color/transparent"
android:windowIsTranslucent="true"
Однако у этого решения все еще есть недостаток:
Экран всплывающего окна появляется над входящимЭкран системы вызова и, следовательно, пользователь должен выполнить действие (такое как нажатие кнопки, нажатие клавиши или касание экрана), чтобы закрыть всплывающий экран, поскольку экран входящего вызова остается внизу и недоступен до тех пор, пока всплывающий экран не будет закрыт..