contacto[arroba]digitallearning.es
Ejemplo SAF

SAF: framework para el acceso a almacenes de documentos

Post Series: Content Provider en Android

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 documentosimá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/o ACTION_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:

Estructura 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:

Ejemplo SAF


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