Если для работы вашего приложения требуется взаимодействие с другими приложениями, рекомендуем проверить, как на него влияют изменения в видимости пакетов в Android 11 (уровень API 30) и более поздних версиях.
В этом руководстве также приведены рекомендации по тестированию изменений в поведении и настройке сообщений в журнале, которые помогут вам определить, как эти изменения могут повлиять на ваше приложение.
Протестируйте изменения в поведении
Чтобы проверить, влияет ли это изменение на ваше приложение, выполните следующие действия:
- Установите Android Studio 3.6.1 или более поздней версии.
- Установите последнюю версию Gradle, которую поддерживает Android Studio.
- Установите для параметра
targetSdkVersionзначение30или выше. - Не добавляйте элемент
<queries>в файл манифеста приложения. - Вызовите метод
getInstalledApplications()илиgetInstalledPackages(). Оба метода возвращают отфильтрованный список, если они выполнены успешно. - Узнайте, какие функции приложения не работают.
- Чтобы исправить эти функции, добавьте соответствующие записи
<queries>.
Как настроить сообщения в журнале для фильтрации пакетов
Чтобы узнать больше о том, как видимость приложений по умолчанию влияет на ваше приложение, вы можете включить сообщения в журнале для фильтрации пакетов. Если вы разрабатываете тестовое или отладочное приложение в Android Studio, то можете использовать системный журнал. В противном случае вы можете выполнить следующую команду в окне терминала, чтобы включить его вручную:
adb shell pm log-visibility --enable PACKAGE_NAME
После этого каждый раз, когда пакеты будут отфильтровываться из возвращаемых значений объекта PackageManager, в Logcat будет появляться сообщение, похожее на следующее:
I/AppsFilter: interaction: PackageSetting{7654321 \
com.example.myapp/12345} -> PackageSetting{...} BLOCKED