內容提供者ContentProvider

2021-08-03 12:15:47 字數 1780 閱讀 8584

內容提供者contentprovider

1.在a應用中,自定義乙個類繼承contentprovider,重寫其中的「增刪改查」方法。

public

class

testprovider

extends

contentprovider

/*** 其他應用訪問該應用時呼叫本方法

* uri 代表本應用的主機名,這需要其他應用來指定本應用的主機名

* contentvalues 代表要插入的資料,這需要其他應用來傳入資料

*/@override

public uri insert(uri uri, contentvalues values)

@override

public

intdelete(uri uri, string selection, string selectionargs)

@override

public string gettype(uri uri)

@override

public cursor query(uri uri, string projection, string selection,

string selectionargs, string sortorder)

@override

public

intupdate(uri uri, contentvalues values, string selection,

string selectionargs)

}

2.在配置清單檔案時,需要指定主機名authorities。
android:name="com.watom.www.testprovider "

android:authorities="com.watom.person"

android:exported="true"

>

provider>

在b應用中的某位置,用contentresolver提供的方法來操作a應用的資料,a和b的這些方法相互對應,如下:

//為本應用獲取contentresolver例項物件

contentresolver resolver = getcontentresolver();

//設定需要插入的資料

contentvalues values = new contentvalues();

values.put("name", "王五");//根據資料庫表插入資料

values.put("age", "19");

//這個insert方法會去訪問內容提供者的insert方法

resolver.insert(uri.parse("content:"), values);

//插入另一條資料

values.clear(); //清除values的內容

values.put("name", "張三");

內容提供者

public class personcontentprovider extends contentprovider override public boolean oncreate 作用 判斷 傳進來的 uri 查詢的是一條資料 還是多條資料 override public string gett...

內容提供者

package com.xh.tx.utils import android.content.context import android.database.sqlite.sqlitedatabase import android.database.sqlite.sqlitedatabase.cur...

內容提供者

讀取系統簡訊,首先查詢原始碼獲得簡訊資料庫內容提供者的主機名和路徑,然後 contentresolver cr getcontentresolver cursor c cr.query uri.parse content sms new string,null,null,null while c.m...