El tutor de nuestro curso online de Desarrollo de Aplicaciones para Android, Víctor Ramírez Las,…
SAF: framework para el acceso a almacenes de documentos
5.
SAF: framework para el acceso a almacenes de documentos
Siguiendo con nuestras publicaciones sobre los Content Provider, vamos a presentar brevemente el nuevo sistema SAF (Storage Access Framework ó ‘Marco de Trabajo de Acceso a Almacenamiento’), disponible desde Android 4.4. SAF nos facilita el acceso a ficheros, permitiéndonos abrir y manejar documentos, imágenes, videos y otros archivos, alojados en proveedores de almacenamiento de documentos.
Este estándar es compatible tanto con servicios locales como en la nube, con sólo implementar un DocumentsProvider
, encargado de encapsular los servicios asociados.
El sistema SAF o framework de acceso a almacenamiento, estaría formado por los siguientes elementos:
- Document provider: Un proveedor de documentos se implementará simplemente con la subclase DocumentsProvider. Android proporciona varios proveedores de documentos tales como Descargas, Imágenes y Vídeos.
- Client app: Una aplicación cliente podrá acceder a un proveedor de documentos mediante la invocación de los intents
ACTION_OPEN_DOCUMENT
y/oACTION_CREATE_DOCUMENT
- Picker (selector): Permite al usuario acceder a todos los proveedores de documentos que cumplan con los criterios de búsqueda.
Principales características del sistema SAF:
- Permite a los usuarios navegar por el contenido de todos los proveedores de documentos.
- Proporciona un acceso constante de la aplicación a los documentos de un proveedor.
- Soporta varias cuentas de usuario, además de permitir el acceso a un proveedor de almacenamiento proporcionado por una unidad USB.
Vemos en la siguiente imagen la estructura jerárquica de datos dentro de un Document Provider:
En la siguiente imagen, se puede apreciar como usando el sistema SAF, una aplicación destinada al uso de fotos puede acceder a los datos almacenados:
Créditos: las imágenes de esta publicación provienen de la documentación oficial Android sobre SAF publicada con licencia Creative Commons Attribution 2.5