1)ContentProvider簡介
該類用於提供數據和存儲數據的方法,就能夠向其餘應用共享其數據。雖然使用其餘方法也能夠對外共享數據,但數據訪問方式會因數據存儲的方式而不一樣,如:採用文件方式對外共享數據,須要進行文件操做讀寫數據;採用sharedpreferences共享數據,須要使用sharedpreferences API讀寫數據。而使用ContentProvider共享數據的好處是統一了數據訪問方式。html
2)每一個ContentProvider都有一個公共的URI,這個URI用於表示這個ContentProvider所提供的數據。Android所提供的ContentProvider都存放在android.provider包當中,Uri類,如:android
Uri uri = Uri.parse("content://com.changcheng.provider.contactprovider/contact")ide
3)ContentProvider提供的方法
query:查詢
insert:插入
update:更新
delete:刪除
getType:獲得數據類型
onCreate:建立數據時調用的回調函數函數
在Content Provider中使用的查詢字符串有別於標準的SQL查詢spa
案例:讀取聯繫人數據爲例orm
新建一項目,先在AndroidManifest.xml中設置可讀取聯繫人的權限:xml
Permission 中’Add’,UserPermissionhtm
android.permission.READ_CONTACTSblog
實際上AndroidManifest.xml添加了一行:ci
<uses-permissionandroid:name="android.permission.READ_CONTACTS"/>
2) 讀取聯繫人姓名
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Cursor c=getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while(c.moveToNext()){ System.out.println(">>>>>>>>>"+c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));
}
參考:
http://www.cnblogs.com/devinzhang/archive/2012/01/20/2327863.html
http://xiechengfa.iteye.com/blog/1415829