Content Providers

Content providers
- Guardan y recuperan datos.
- Datos disponibles para todas las aplicaciones.
- No existe otro espacio común entre ellas.
- Distintos tipos predefinidos (audio, vídeo, ...):
- Los datos se guardarán en una tabla, con _ID.
Content resolver
- Instancia global en la aplicación que proporciona acceso a los content providers (sean tuyos o de otras apps).
- Acepta peticiones y las redirige al content provider.
- Mapea autorities - content providers.
- No conoce la implementación del content provider.
- Se le pasa una URI que especifica el ContentProvider.
Utilización
- ContentResolver cr = getContentResolver();
- Uri para acceder (content://host:port/path)
- Querys para obtener información:
- getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder)
- _ID determinado (ej: _ID=22->content:…/22)
-
- ContentUris().withAppendedID()
- Uri().withAppendedPath()
Utilización
- Cursor nos permitirá navegar entre los datos obtenidos del Content Provider.
- Utilizaremos ContentValues y ContentResolver.insert() para añadir nuevos valores a los registros.
Life de una Query
- Llamamos al content resolver:
-
getContentResolver().query(Uri, String, String, String, String)
-
- El content resolver parsea la URI y extrae el autority (que mapea el content provider).
- El content resolver redirige la petición al content provider. (Se hace una query al content provider)
- Cuando se ha invocado el método, se realiza la query en el content provider y se devuelve un cursor con los datos obtenidos.
- Content provider basics:
- Contacts provider:
- Calendar provider
Content Providers
By marcos_perez
Content Providers
- 723