Una de las características más destacadas de Android 13 es el Selector de fotos, un nuevo componente del sistema que permite a los usuarios elegir a qué fotos y vídeos dar acceso a una aplicación. Las aplicaciones no necesitan solicitar ningún permiso para acceder a los elementos que el usuario selecciona a través del Selector de fotos, lo que lo convierte en una forma de preservar la privacidad de compartir fotos y vídeos con las aplicaciones. El selector de archivos del sistema que existe desde Android 4.4 ofrece más funciones que el Selector de fotos, pero su interfaz de usuario es anticuada en comparación.

El Selector de fotos (y el selector de archivos del sistema anterior) protege tu privacidad al permitirte restringir a qué fotos y videos tiene acceso una aplicación. Desafortunadamente, muchas aplicaciones no son compatibles con el Selector de fotos, a pesar de que hay una versión compatible con versiones anteriores disponible para Android 4.4+. Las aplicaciones tienen que invocar específicamente el Selector de fotos mediante una intención, pero muchas aplicaciones eligen no usarlo por una razón u otra. Afortunadamente, eso podría no importar más enAndroid 14, que está probando una forma para que los usuarios elijan a qué fotos y videos pueden acceder las aplicaciones a través del Selector de fotos independientemente de si esas aplicaciones realmente usan o no la API.

Muchas aplicaciones acceden a los archivos multimedia a través de laAPI de la tienda multimedia. El sistema indexa los archivos por tipo, denominados colecciones de la tienda multimedia, y mantiene una base de datos que las aplicaciones pueden consultar mediante la API de la tienda multimedia. Las aplicaciones que utilizan la API de la tienda multimedia no necesitan pedir permiso para leer o modificar los archivos que poseen, pero sí necesitan que el usuario les conceda permiso para acceder a los archivos que son propiedad de otras aplicaciones.

A partir de Android 10, las aplicaciones que tienen como objetivo el nivel de API 29 o superior debían recibir el permiso READ_EXTERNAL_STORAGE del usuario antes de poder usar la API de la tienda de medios para acceder a archivos propiedad de otras aplicaciones. En Android 13, el permiso READ_EXTERNAL_STORAGE se dividió en tres permisos diferentes (READ_MEDIA_AUDIO, READ_MEDIA_VIDEO y READ_MEDIA_IMAGES) que otorgan a una aplicación que tiene como objetivo el nivel de API 33 la capacidad de usar la API de la tienda de medios para acceder a archivos de audio, video e imagen respectivamente que son propiedad de otras aplicaciones.

Android 14 cambia los permisos de acceso a los medios una vez más al combinar READ_MEDIA_VIDEO, READ_MEDIA_IMAGES y ACCESS_MEDIA_LOCATION en un nuevo permiso llamado READ_MEDIA_VISUAL_USER_SELECTED. Este permiso permite que una aplicación que tenga como objetivo el nivel de API 34 "lea archivos de imágenes y videos seleccionados por el usuario desde el almacenamiento compartido", según su descripción. Sin embargo, Android 14 puede aplicar retroactivamente este nuevo comportamiento a las aplicaciones existentes que tengan como objetivo el nivel de API 33 (es decir, Android 13) y soliciten READ_MEDIA_VIDEO o READ_MEDIA_IMAGES.

Cuando una aplicación que tiene como objetivo el nivel de API 33 activa el cuadro de diálogo de permisos en tiempo de ejecución para solicitar al usuario que le otorgue READ_MEDIA_VIDEO o READ_MEDIA_IMAGES (o ambos), Android 14 puede insertar una nueva entrada en el cuadro de diálogo de permisos que diga "Seleccionar fotos". Al pulsar esta entrada, se iniciará una nueva versión del Selector de fotos que permite al usuario seleccionar a qué fotos o vídeos desea conceder acceso a la aplicación. Posteriormente, la aplicación tiene acceso solo a los elementos multimedia que el usuario seleccionó específicamente, a menos que el usuario elija ampliar el acceso a elementos multimedia adicionales u otorgar a la aplicación acceso a todas las colecciones de la tienda multimedia para imágenes y vídeos.

Esta entrada en el cuadro de diálogo de permisos no se muestra de forma predeterminada en Android 14 DP1, ya que su visibilidad está limitada por una bandera de desarrollador que tuve que activar. Sin embargo, si esta función llega a implementarse, será una gran victoria para la privacidad, ya que significa que los usuarios siempre tendrán la capacidad de decidir a qué fotos o videos debe tener acceso una aplicación.

Muy pocas aplicaciones utilizan la API del Selector de fotos tal como está, lo que llevó a Google a experimentar conla interceptación de una intención existenteque las aplicaciones utilizan para iniciar el selector de archivos del sistema para que, en su lugar, inicien el Selector de fotos. Si bien el Selector de fotos tiene algunas fallas, como que aún no muestra archivos de proveedores de medios en la nube (¡quizás lo haga pronto con la versión 5del SDK de extensión!) yque solo muestra ciertos álbumesen el dispositivo, es mejor que el antiguo selector de archivos del sistema y, sin duda, es preferible a que todas las aplicaciones tengan acceso a todas las fotos y videos de la galería.

Los desarrolladores que estén interesados ​​en implementar la API Photo Picker deben actualizar a la última versión dela biblioteca Jetpack Activity, que maneja la llamada a la versión compatible con versiones anteriores proporcionada a través de Google Play Services en Android 4.4-Android 10 o la versión proporcionada por el marco proporcionada a travésdel módulo MediaProvider Mainline.