Android通過(guò)ContentProvider取得電話(huà)本的數(shù)據(jù)
ContentProvider為存儲(chǔ)和獲取數(shù)據(jù)提供了統(tǒng)一的接口。ContentProvide對(duì)數(shù)據(jù)進(jìn)行封裝,不用關(guān)心數(shù)據(jù)存儲(chǔ)的細(xì)節(jié)。使用表的形式來(lái)組織數(shù)據(jù)。
這里介紹通過(guò)ContentProvider取得電話(huà)本的數(shù)據(jù)的方法,先通過(guò)getContentResolver方法來(lái)取得一個(gè)ContentResolver對(duì)象,然后通過(guò)其query方法查詢(xún)出符合標(biāo)準(zhǔn)的電話(huà)本記錄,最后將這些數(shù)據(jù)都顯示在一個(gè)TextView中即可。
- public class Activity01 extends Activity
 - {
 - public void onCreate(Bundle savedInstanceState){
 - TextView tv = new TextView(this);
 - String string = "";
 - super.onCreate(savedInstanceState);
 - //得到ContentResolver 對(duì)象
 - ContentResolver cr = getContentResolver();
 - //取得電話(huà)本中開(kāi)始一項(xiàng)的光標(biāo)
 - Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
 - //向下移動(dòng)光標(biāo)
 - while(cursor.moveToNext()){
 - //取得聯(lián)系人名字
 - int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
 - String contact = cursor.getString(nameFieldColumnIndex);
 - //取得電話(huà)號(hào)碼
 - int numberFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.NUMBER);
 - String number = cursor.getString(numberFieldColumnIndex);
 - string += (contact+":"+number+"\n");
 - }
 - cursor.close();
 - //設(shè)置TextView 顯示的內(nèi)容
 - tv.setText(string);
 - //顯示到屏幕
 - setContentView(tv);
 - }
 - }
 
TextView設(shè)置中的代碼如下:
- <uses-permission
 - android:name="android.permission.READ_CONTACTS">
 - </uses-permission>
 















 
 
 



 
 
 
 