Окно наложения Android на API 26 , WindowManager.Параметры компоновки.TYPE_APPLICATION_OVERLAY против TYPE_PHONE

#android #overlay #android-8.0-oreo #android-windowmanager #layoutparams

#Android #наложение #android-8.0-oreo #android-windowmanager #layoutparams

Вопрос:

У меня есть приложение, которое показывает плавающие окна наложения, и оно работает нормально. Он использует WindowManager.Параметры компоновки.Однако TYPE_PHONE для Windows, и в нем говорится, что он устарел на уровне API 26. Некоторые люди в Интернете говорили, что они получают ошибки при использовании TYPE_PHONE с Android 8.0 и выше, но я тестировал свое приложение на телефонах с Android 9 и 10, и оно отлично работает с TYPE_PHONE. Есть ли какая-либо польза от изменения его на TYPE_APPLICATION_OVERLAY для телефонов с 8.0 и выше, поскольку он работает как есть? Целевая версия на данный момент составляет 25.

Ответ №1:

Как вы можете прочитать в официальном документе (https://developer.android.com/reference/android/view/WindowManager .LayoutParams#TYPE_PHONE):

Эта константа устарела на уровне API 26. для несистемных приложений. Вместо этого используйте TYPE_APPLICATION_OVERLAY

Это не означает, что это значение не работает, но только оно УСТАРЕЛО. В более новых приложениях (целевой SDK> = 26) вы должны использовать предлагаемое значение, чтобы быть совместимым на 100%.

Если вы хотите настроить таргетинг до 25, вы можете продолжать использовать TYPE_PHONE, но магазин Google Play больше не принимает приложения ниже SDK 29 😉

Комментарии:

1. Черт возьми, на самом деле это приложение есть в Play Store, но оно не было удалено или что-то в этом роде, возьмите этот Android api 26 и выше. В любом случае, спасибо за ответ

2. Начиная с декабря (если я хорошо помню) все новые приложения или обновления должны быть нацелены на SDK 29

3. на самом деле, похоже, это уже так, я просто попытался и не смог обновить свое приложение, если не обновил целевую версию до 29