22
Android Content Providers Kurt Mbanje : DStv Digital Media +KurtMbanje @ckurtm

Android content providers

Embed Size (px)

Citation preview

Page 1: Android content providers

Android Content Providers

Kurt Mbanje : DStv Digital Media+KurtMbanje@ckurtm

Page 2: Android content providers

What's a Content Provider?

• They provide content to applications.• They encapsulate data and provide it to applications through the single

ContentResolver interface

Page 3: Android content providers

Why?

• Share data between applications.• Predictive search within your app• Leverage power of loaders with cursors.

Page 4: Android content providers

Ok so how does this work?

App 1 has content (database) and a registered ContentProvider

App 2 uses ContentResolver and content Uri to request data from a ContentProvider

Android uses the Uri provided by App 2 to find the matching registered ContentProvider to send and receive data from

The ContentProvider for App 1 uses this Uri to find the data and returns it to the ContentResolver supplied by App 2

Page 5: Android content providers

Components

• android.content.ContentResolver getContext().getContentResolver()• android.net.Uri

Page 6: Android content providers

Content Uri android.net.Uri

• The scheme – content://• Authority • Path usually matches a table name in your database• ID (optional) used for further filtering e.g. to get a specific row

Page 7: Android content providers

android.content.ContentResolver

public final Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

Query

insert(Uri url, ContentValues values)INSERT

update(Uri uri, ContentValues values, String where, String[] selectionArgs)

Update

delete(Uri url, String where, String[] selectionArgs)

Delete

Page 8: Android content providers

android.content.ContentResolver

Query

Page 9: Android content providers

Example: Query Calendar

Page 10: Android content providers

android.content.ContentResolver

public final Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

Query

insert(Uri url, ContentValues values)INSERT

update(Uri uri, ContentValues values, String where, String[] selectionArgs)

Update

delete(Uri url, String where, String[] selectionArgs)

Delete

Page 11: Android content providers

android.content.ContentResolver

public final Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

Query

insert(Uri url, ContentValues values)INSERT

update(Uri uri, ContentValues values, String where, String[] selectionArgs)

Update

delete(Uri url, String where, String[] selectionArgs)

Delete

Page 12: Android content providers

Example: Update event in Calendar

Page 13: Android content providers

android.content.ContentResolver

public final Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

Query

insert(Uri url, ContentValues values)INSERT

update(Uri uri, ContentValues values, String where, String[] selectionArgs)

Update

delete(Uri url, String where, String[] selectionArgs)

Delete

Page 14: Android content providers

Create a Content Provider1. Create an Authority

2. Create a your class that extends from ContentProvider

3. Implement the matching ContentResolver methods

4. Register your ContentProvider in manifest & mark export to true (only if you wish to share your data)

Page 15: Android content providers

1: Create an Authority

Page 16: Android content providers

2: Create your ContentProvider1. Extend From ContentProvider

2. Implement OnCreate

3. Create your Uri matcher

4. Overide methods e.g. query

Page 17: Android content providers

3: Create your ContentProvider : Query Method

Page 18: Android content providers

Type - public String getType(Uri uri)

Delete - public abstract int delete (Uri uri, String selection, String[] selectionArgs)

Update - public abstract int update (Uri uri, ContentValues values, String selection, String[] selectionArgs)

Insert - public abstract Uri insert (Uri uri, ContentValues values)

3: Create your ContentProvider : Other Methods

Page 19: Android content providers

4: Register your ContentProvider

Page 20: Android content providers
Page 21: Android content providers

DroidProviderhttps://github.com/ckurtm/DroidProvider

Page 22: Android content providers

Thanks

+KurtMbanje