Today, I will introduce about Content Provider in Android.
What's is Content Provider?
- Content Provider store and retrieve data. Content Provider will make data accessible to all applications. This is unique way to share data across applications.
- Android provide a number of Content Provider for common data types (audio, video, images, bookmarks, contact,...). Query these providers for the data contained. (although, for some, must acquire the proper permission to read/write data).
- Android provide a number of Content Provider for common data types (audio, video, images, bookmarks, contact,...). Query these providers for the data contained. (although, for some, must acquire the proper permission to read/write data).
There're 2 ways to make data public:
- Create your own Content Provider.
- Add your data to existing Content Provider.
Example 1: Displays Bookmark of System Browser.
- Permission is required to access Browser Content. Declare 2 below lines in AndroidManifest.xml file:
- Retrieve data and display them in List view. Create a ListActivity:
- Permission is required to access Browser Content. Declare 2 below lines in AndroidManifest.xml file:
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"> <uses-permission android:name="com.android.broswer.permission.WRITE_HISTORY_BOOKMARKS">
- Retrieve data and display them in List view. Create a ListActivity:
package com.jbohn.contentprovider; import android.app.ListActivity; import android.database.Cursor; import android.os.Bundle; import android.provider.Browser; import android.widget.SimpleCursorAdapter; public class ContentProviderBrowserActivity extends ListActivity { @Override public void onCreate( Bundle savedInstanceState ) { super.onCreate( savedInstanceState ); setContentView( R.layout.activitybrowser ); //Projection for the interesting columns of a Bookmark String[] projection = new String[] { Browser.BookmarkColumns._ID, Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL }; //Do query to retrieve data(bookmarks) from Browser Cursor cursor = managedQuery( android.provider.Browser.BOOKMARKS_URI, projection, null, null, null ); //Put data to a List Activity String[] displayFields = new String[] { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL }; int[] displayViews = new int[] { android.R.id.text1, android.R.id.text2 }; setListAdapter( new SimpleCursorAdapter( this, android.R.layout.simple_list_item_2, cursor, displayFields, displayViews ) ); } }
Tobe continue...
(http://jbohn.blogspot.com)
Comments
Post a Comment