Когда приложение предназначено для Android 11 (уровень API 30) или выше и запрашивает информацию о других приложениях, установленных на устройстве, система по умолчанию фильтрует эту информацию. Такое поведение фильтрации означает, что ваше приложение не может обнаружить все приложения, установленные на устройстве, что помогает свести к минимуму потенциально конфиденциальную информацию, к которой ваше приложение может получить доступ, но не требует выполнения своих сценариев использования.
Кроме того, видимость отфильтрованных пакетов помогает магазинам приложений, таким как Google Play, оценить конфиденциальность и безопасность, которые ваше приложение обеспечивает для пользователей. Например, Google Play считает список установленных приложений личными и конфиденциальными данными пользователя .
Ограниченная видимость приложения влияет на результаты, возвращаемые методами, которые предоставляют информацию о других приложениях, например queryIntentActivities()
, getPackageInfo()
и getInstalledApplications()
. Ограниченная видимость также влияет на явное взаимодействие с другими приложениями, например запуск службы другого приложения.
Некоторые пакеты видны автоматически . Ваше приложение всегда может обнаружить эти пакеты в своих запросах к другим установленным приложениям. Чтобы просмотреть другие пакеты, заявите о необходимости вашего приложения повысить видимость пакетов с помощью элемента <queries>
. На странице вариантов использования приведены примеры того, как можно выборочно расширить видимость пакета. Описанные там рабочие процессы позволяют реализовать распространенные сценарии взаимодействия приложений, одновременно защищая конфиденциальность пользователей.
В редких случаях, когда элемент <queries>
не обеспечивает адекватную видимость пакета, вы можете использовать разрешение QUERY_ALL_PACKAGES
. Если вы публикуете свое приложение в Google Play, использование вашим приложением этого разрешения подлежит одобрению .
На странице тестирования поведения видимости пакета представлены предложения о том, как протестировать изменения поведения на основе видимости пакета, когда ваше приложение зависит от взаимодействия с другими приложениями.
Дополнительные ресурсы
Чтобы узнать больше о видимости пакетов на Android, просмотрите следующие материалы:
Сообщения в блоге
- Видимость пакета в Android 11 , доступна на Medium.