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:
http://developer.android.com/guide/topics/providers/content-provider-basics.html
Contacts provider:
http://developer.android.com/guide/topics/providers/contacts-provider.html
Calendar provider
http://developer.android.com/guide/topics/providers/calendar-provider.html
Made with Slides.com