Почему Chrome просит доступ к файлам через com.android.chrome.fileprovider и как это настроить
com.android.chrome.fileprovider — это реализация Android FileProvider: Chrome создаёт безопасные content:// URI для передаваемых файлов, поэтому при скачивании, открытии или отправке документов система может запрашивать разрешения на чтение/запись. Ниже — коротко о причинах и точные шаги, чтобы настроить доступ безопасно.
Что такое FileProvider и зачем Chrome его использует
FileProvider — компонент платформы/AndroidX, который даёт приложениям способ делиться файлами через временные content:// URI без раскрытия реальных путей на диске. Chrome применяет его, когда:
- скачивает файлы (PDF, изображения, APK) в хранилище;
- открывает файл во внешнем приложении (например, PDF в стороннем ридере);
- передаёт файлы через "Поделиться" другому приложению.
Преимущество: вместо доступа к /storage/... генерируется временный URI, который можно дать отдельному приложению с правами только на этот URI.
Игнорирование системного запроса разрешения может заблокировать скачивания или открытие файлов — Chrome не сможет сохранить или передать файл другому приложению.
Почему появляется запрос и что он означает
Запросы обусловлены тремя факторами:
- Разрешения на доступ к хранилищу. На старых Android это «Хранилище», на новых — «Файлы и медиа» или отдельный доступ «Все файлы» (Manage external storage).
- Scoped Storage (Android 10–13 и выше): прямой доступ к чужим файлам ограничен, поэтому Chrome использует FileProvider и/или Storage Access Framework (SAF), что запускает диалог разрешений.
- Операции с внешними приложениями: передача URI другому приложению требует выдачи временного доступа.
Если запросы стали частыми после обновления Chrome или системы, это нормально: пересборка манифеста/изменения путей могут вызывать повторные подтверждения.
Как настроить доступ правильно (пошагово)
- Разрешить базовый доступ
- Настройки → Приложения → Chrome → Разрешения → Файлы и медиа (или «Хранилище»).
- Выберите «Разрешать только при использовании приложения», если не хотите давать постоянный полный доступ.
- Проверить папку загрузок в Chrome
- Chrome → Настройки → Скачивания → Включите «Спрашивать, куда сохранять» или укажите общую папку Downloads. Это уменьшит обращения к приватным директориям /Android/data.
- Если нужен полный доступ (только для Android 11+)
- Настройки → Приватность (или Приложения → Специальный доступ) → Доступ ко всем файлам → включите для Chrome только если нужно.
- Устранение проблем
- Очистка кэша: Настройки → Приложения → Chrome → Хранилище → Очистить кэш.
- Переустановите Chrome или обновите систему, если разрешения «зависли».
- Отключите сторонние антивирусы/файловые менеджеры, которые могут перехватывать доступ.
Если заботит приватность, используйте «Инкогнито» и отключите синхронизацию: это не остановит работу FileProvider, но уменьшит привязку скачиваний к учётной записи.
Для разработчиков: пример конфигурации FileProvider
Добавьте в AndroidManifest.xml (пример):
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.android.chrome.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
Пример res/xml/file_paths.xml:
<paths>
<external-files-path name="downloads" path="." />
</paths>
Это ограничит выдаваемые URI нужными директориями.
Частые ошибки
- Неправильная папка загрузок: Chrome пытается писать в защищённую директорию /Android/data — смените путь на Downloads.
- Выдача «Все файлы» без необходимости: даёт широкие права и повышает риск. Предпочтительнее — SAF или выбор папки пользователем.
- Сторонние приложения блокируют доступ: антивирусы и менеджеры файлов иногда мешают. Отключите их и проверьте снова.
FAQ
- Нужно ли всегда давать «Все файлы»? Нет — чаще достаточно разрешения «Файлы и медиа» или выбор папки через SAF.
- Может ли FileProvider читать все мои файлы? Нет — он передаёт только те файлы, URI на которые создало приложение (в данном случае Chrome).
- Что делать, если файлы не скачиваются после разрешения? Очистите кэш приложения и перезапустите Chrome; при необходимости переустановите.
Настройте разрешения один раз, выбирая минимально необходимые права, и Chrome будет корректно сохранять и открывать файлы без лишних всплывающих запросов.