Vamos a examinar algunos de los elementos que componen los proveedores de contenidos(CV) y cómo éstos se relacionan con otras abstracciones de acceso a datos.

En conujunto, los CV tienen un enfoque paralelo a las siguientes abstracciones:

Cada CV de un dispositivo se registra a sí mismo de manera similar a como lo hace un sitio web con cadenas de texto (similar a los nombres de domínio, pero para los CV se llama authority). Esta cadena asenta las bases del conjunto de URIs que este CV puede ofrecer. No es diferente a como un sitio web con un dominio ofrece un conjunto de URls que muestran sus documentos o contenido en general.



El registro de la authority se hace en el androidManifest. A continuación se muestran dos ejemplos de como se deben registrar proveedores (en este caso de la aplicación FavSItes):

<provider android:name=".SitesProvider"
android:authorities="com.elbauldelprogramador.provider.FavSites" />

Un authoroty es como un nombre de dominio para ese CV. Con el authority anterior, las urls de nuestro proveedor comenzarán con ese prefijo:

content://com.elbauldelprogramador.provider.FavSites

Como se ve, los CV, como los sitios web, tienen un nombre de dominio base que actúa como URL inicial.

Los CV también proporcionan URLs del tipo REST para recuperar o manipular datos. Para el registro que acabamos de ver, el URI para identificar un directorio o una colección de datos en la base de datos de FavSites será:

content://com.elbauldelprogramador.provider.FavSites/sites

Y para identificar un dato específico:

content://com.elbauldelprogramador.provider.FavSites/sites/#

Donde # es el id del dato específico, en el caso de la mi aplicación, un lugar en el mapa. A continuación algunos ejemplos de URIs que se aceptan:

content://media/internal/images
content://media/external/images
content://contacts/people
content://contacts/people/23

Nótese que estos CV (content://media y content://contacts) no tienen una estructura completa como los vistos más arriba. Se debe a que no son CV de terceros, son propios de Android y él es quién los controla.

Siguiente Tema: Proveedores de Contenidos - Leer datos mediante URIs