Система автоматически делает некоторые приложения видимыми, чтобы ваше приложение могло взаимодействовать с ними без объявления элемента <queries>. Это позволяет поддерживать базовые функции и распространенные сценарии использования.
Типы приложений, которые видны автоматически
Следующие типы приложений всегда видны вашему приложению, даже если оно предназначено для Android 11 (уровень API 30) или более поздней версии:
- Ваше приложение.
- Определенные системные пакеты, например поставщик медиаконтента, которые реализуют основные функции Android.
- Приложение, которое установило ваше приложение.
- Любое приложение, которое запускает действие в вашем приложении с помощью метода
startActivityForResult(), как описано в руководстве Getting a result from an activity (Получение результата действия). - Любое приложение, которое запускает сервис в вашем приложении или связывается с ним.
- Любое приложение, которое обращается к поставщику контента в вашем приложении.
- Любое приложение, у которого есть поставщик контента, к которому вашему приложению предоставлен доступ по URI.
- Любое приложение, которое получает данные из вашего приложения. Этот случай применим, только если ваше приложение предоставляет данные в качестве редактора метода ввода.
Системные пакеты, которые видны автоматически
Некоторые системные пакеты, реализующие основные функции Android, автоматически видны вашему приложению, даже если оно предназначено для Android 11 или более поздней версии. Набор пакетов зависит от устройства, на котором запущено приложение.
Чтобы посмотреть полный список пакетов для определенного устройства, выполните следующую команду в терминале на компьютере для разработки:
adb shell dumpsys package queries
В результатах выполнения команды найдите раздел forceQueryable. В этом разделе перечислены пакеты, которые устройство автоматически сделало видимыми для вашего приложения.