Фильтрация видимости пакетов на Android

Когда приложение предназначено для Android 11 (уровень API 30) или выше и запрашивает информацию о других приложениях, установленных на устройстве, система по умолчанию фильтрует эту информацию. Такое поведение фильтрации означает, что ваше приложение не может обнаружить все приложения, установленные на устройстве, что помогает свести к минимуму потенциально конфиденциальную информацию, к которой ваше приложение может получить доступ, но не требует выполнения своих сценариев использования.

Кроме того, видимость отфильтрованных пакетов помогает магазинам приложений, таким как Google Play, оценить конфиденциальность и безопасность, которые ваше приложение обеспечивает для пользователей. Например, Google Play считает список установленных приложений личными и конфиденциальными данными пользователя .

Ограниченная видимость приложения влияет на результаты, возвращаемые методами, которые предоставляют информацию о других приложениях, например queryIntentActivities() , getPackageInfo() и getInstalledApplications() . Ограниченная видимость также влияет на явное взаимодействие с другими приложениями, например запуск службы другого приложения.

Некоторые пакеты видны автоматически . Ваше приложение всегда может обнаружить эти пакеты в своих запросах к другим установленным приложениям. Чтобы просмотреть другие пакеты, заявите о необходимости вашего приложения повысить видимость пакетов с помощью элемента <queries> . На странице вариантов использования приведены примеры того, как можно выборочно расширить видимость пакета. Описанные там рабочие процессы позволяют реализовать распространенные сценарии взаимодействия приложений, одновременно защищая конфиденциальность пользователей.

В редких случаях, когда элемент <queries> не обеспечивает адекватную видимость пакета, вы можете использовать разрешение QUERY_ALL_PACKAGES . Если вы публикуете свое приложение в Google Play, использование вашим приложением этого разрешения подлежит одобрению .

На странице тестирования поведения видимости пакета представлены предложения о том, как протестировать изменения поведения на основе видимости пакета, когда ваше приложение зависит от взаимодействия с другими приложениями.

Дополнительные ресурсы

Чтобы узнать больше о видимости пакетов на Android, просмотрите следующие материалы:

Сообщения в блоге