Я должен показать окно предупреждения на экране вызова. Ниже Android 7 эта функциональность работает нормально, но для Android 7 это не работает.
В сервисе я создаю оконный менеджер и добавил вид, но когда устройство заблокировано в случае Android 7, оно не отображается поверх экрана вызова.
mParams = new WindowManager.LayoutParams(
width - 20,
ViewGroup.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT |
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE |
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
PixelFormat.TRANSPARENT);
mParams.gravity = Gravity.CENTER;
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY
устарел в API Level 26 для несистемных приложений и больше не работает, как раньше для приложений, ориентированных на Android 8.0; используйте взамен WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
.