Android 14 позволит вам ограничить доступ приложений к фотографиям, даже если они не используют средство выбора фотографий.

Средство выбора фотографий было необязательным API для приложений, которые хотели получить доступ к вашей галерее в Android 13, но в Android 14 оно становится несколько обязательным.

Одной из основных функций Android 13 является Photo Picker, новый системный компонент, который позволяет пользователям выбирать, к каким фотографиям и видео предоставлять доступ приложению. Приложениям не нужно запрашивать какие-либо разрешения, чтобы получить доступ к элементам, которые пользователь выбирает с помощью средства выбора фотографий, что делает его безопасным для конфиденциальности способом обмена фотографиями и видео с приложениями. Средство выбора системных файлов, которое существует с Android 4.4, предлагает больше функциональных возможностей, чем средство выбора фотографий, но его пользовательский интерфейс устарел по сравнению с ним.

Средство выбора фотографий (и средство выбора системных файлов перед ним) защищает вашу конфиденциальность, позволяя вам ограничивать доступ к фотографиям и видео, к которым приложение имеет доступ. К сожалению, многие приложения не поддерживают Photo Picker, хотя его версия с обратной совместимостью доступна для Android 4.4+. Приложения должны специально вызывать средство выбора фотографий с помощью намерения, но многие приложения предпочитают не использовать его по той или иной причине. К счастью, это может уже не иметь значения в

Андроид 14, который тестирует способ, с помощью которого пользователи могут выбирать, к каким приложениям для фотографий и видео можно получить доступ через средство выбора фотографий, независимо от того, действительно ли эти приложения используют API.

Многие приложения получают доступ к медиафайлам через API медиа-магазина. Система индексирует файлы по их типу, называемому коллекциями хранилища мультимедиа, и поддерживает базу данных, которую приложения могут запрашивать с помощью API хранилища мультимедиа. Приложениям, использующим API-интерфейс медиа-магазина, не нужно запрашивать разрешение на чтение или изменение файлов, которыми они владеют, но им необходимо предоставить разрешение от пользователя на доступ к файлам, принадлежащим другим приложениям.

Начиная с Android 10 приложения, предназначенные для уровня API 29 или выше, должны были получить Разрешение READ_EXTERNAL_STORAGE от пользователя, прежде чем он сможет использовать API хранилища мультимедиа для доступа к файлам. принадлежат другим приложениям. В Android 13 разрешение READ_EXTERNAL_STORAGE было разделено на три разных разрешения (READ_MEDIA_AUDIO, READ_MEDIA_VIDEO и READ_MEDIA_IMAGES), которые каждый предоставляет приложению, ориентированному на уровень API 33, возможность использовать API хранилища мультимедиа для доступа к аудио, видео и файлам изображений соответственно, которые принадлежат другим Программы.

Android 14 снова изменяет разрешения на доступ к мультимедиа, объединяя READ_MEDIA_VIDEO, READ_MEDIA_IMAGES и ACCESS_MEDIA_LOCATION в новое разрешение под названием READ_MEDIA_VISUAL_USER_SELECTED. Это разрешение позволяет приложению, ориентированному на уровень API 34, «считывать выбранные пользователем изображения и видеофайлы из общего хранилища», согласно его описанию. Однако Android 14 может задним числом применить это новое поведение к существующим приложениям, предназначенным для уровня API 33 (т. Android 13) и запросите READ_MEDIA_VIDEO или READ_MEDIA_IMAGES.

Когда приложение, предназначенное для уровня API 33, вызывает диалоговое окно разрешений во время выполнения, чтобы попросить пользователя предоставить им READ_MEDIA_VIDEO или READ_MEDIA_IMAGES (или оба), Android 14 может вставить новую запись в диалоговое окно разрешений с надписью «Выбрать фотографии». Нажатие на эту запись запустит новую версию средства выбора фотографий, которое позволяет пользователю выбирать, к каким фотографиям или видео он хочет предоставить доступ приложению. к. Приложение впоследствии имеет доступ только к тем медиафайлам, которые пользователь специально выбрал, если только пользователь не решит расширить доступ к дополнительным элементам мультимедиа или предоставить приложению доступ ко всем коллекциям магазина мультимедиа для изображений и видео.

Эта запись в диалоговом окне разрешений не отображается по умолчанию в Android 14 DP1, поскольку ее видимость ограничена флагом разработчика, который мне пришлось переключить. Однако если эта функция будет выпущена, это станет большой победой для конфиденциальности, поскольку это означает, что пользователи всегда будут иметь возможность решать, к каким фотографиям или видео должно иметь доступ приложение.

Слишком мало приложений используют API Photo Picker в его нынешнем виде, что побуждает Google экспериментировать с ним. перехват существующего намерения которые приложения используют для запуска средства выбора системных файлов, поэтому вместо этого они запускают средство выбора фотографий. Хотя средство выбора фотографий имеет некоторые недостатки, например, пока не показывает файлы из облачных медиа-провайдеров (возможно, скоро это будет SDK расширений версия 5!) и показаны только определенные альбомы на устройстве это лучше, чем старое средство выбора системных файлов, и, безусловно, предпочтительнее любого приложения, имеющего доступ к каждой фотографии и видео в галерее.

Разработчики, заинтересованные во внедрении API Photo Picker, должны обновить его до последней версии. библиотека активности Jetpack, который обрабатывает вызов обратно совместимой версии, предоставленной через Службы Google Play на Android 4.4-Android 10, или версии, предоставленной платформой, предоставленной через основной модуль MediaProvider.