通訊錄訪問測試X3

2021-05-25 06:38:42 字數 1682 閱讀 3076

content providers 作用是使得各個應用程式之間實現資料共享。

contentresolver

contentresolver cr = getcontentresolver();

uri每個content providers都會對外提供乙個公共的uri(包裝成uri物件),其他應用程式就可以通過content providers傳入這個uri來對資料進行操作。

uri由3個部分組成:"content://",資料的路徑,標識id(可選)

系統的一些uri: content://media/internal/images(返回裝置上儲存的所有) content://contacts/people/5(聯絡人資訊中id為5的聯絡人記錄) content://contacts/people/(返回裝置上的所有聯絡人資訊)

系統提供一些輔助類,以類變數形式給出的查詢字串 content://contacts/people/5 ->

查詢資料

使用contentresolver.query()或者activity.managedquery()傳入乙個uri來確定當前要操作的資料 返回乙個cursor物件。

修改資料

新增資料

//呼叫contentresolver.insert()方法來新增一條記錄//引數:記錄目標的uri,新記錄值的contentvalues(map)物件,返回乙個新記錄的uri(包含記錄號)contentvalues values = new contentvalues();values.put(people.name,"abraham");values.put(people.starred,1);uri uri = getcontentresolver.insert(people.content_uri,values);

刪除資料

uri uri = people.content_uri;getcontentresolver().delete(uri,null,null);//指定where條件語句刪除getcontentresolver().delete(uri,"name='abort'",null);

public

voidgetcontact()while(phones.movetonext());

} }

}while(cur.movetonext());

} }

在聯絡人的**號碼中有很多種,如果只想獲得手機號碼。**如下:

cursor phones = mcontext.getcontentresolver().query(

contactscontract.commondatakinds.phone.content_uri,

null,

contactscontract.commondatakinds.phone.contact_id

+ " = "

+ contactid +" and "

+contactscontract.commondatakinds.phone.type+"="

+contactscontract.commondatakinds.phone.type_mobile,null,null);

IOS如何訪問通訊錄

讀取所有聯絡人 void readallpeoples dispatch semaphore wait sema,dispatch time forever dispatch release sema else 取得本地所有聯絡人記錄 if tmpaddressbook nil nsarray tm...

sqlite3 編寫簡易通訊錄

以下貼出的是我用sqlite3寫的簡易通訊錄,注意編譯時鏈結上sqlite3庫,若有什麼錯誤望大牛指正 include include include include define max size 1024 static sqlite3 db null static char errmsg nul...

poi筆記 3 列印通訊錄資訊

在開發專案時,有乙個需求列印通訊資訊或者匯出資料,匯出到excel 資料要美觀,就需要樣式的修飾。下面是乙個匯出excel的案例核心 title print author 一葉扁舟 skiff description 列印 將資料庫中的資料匯出到excel 中 param throws fileno...