Android通過ContentProvider取得電話本的數(shù)據(jù)
作者:佚名
這里介紹通過ContentProvider取得電話本的數(shù)據(jù)的方法,先通過getContentResolver方法來取得一個ContentResolver對象,然后通過其query方法查詢出符合標(biāo)準(zhǔn)的電話本記錄,最后將這些數(shù)據(jù)都顯示在一個TextView中即可。
ContentProvider為存儲和獲取數(shù)據(jù)提供了統(tǒng)一的接口。ContentProvide對數(shù)據(jù)進行封裝,不用關(guān)心數(shù)據(jù)存儲的細節(jié)。使用表的形式來組織數(shù)據(jù)。
這里介紹通過ContentProvider取得電話本的數(shù)據(jù)的方法,先通過getContentResolver方法來取得一個ContentResolver對象,然后通過其query方法查詢出符合標(biāo)準(zhǔn)的電話本記錄,最后將這些數(shù)據(jù)都顯示在一個TextView中即可。
- public class Activity01 extends Activity
- {
- public void onCreate(Bundle savedInstanceState){
- TextView tv = new TextView(this);
- String string = "";
- super.onCreate(savedInstanceState);
- //得到ContentResolver 對象
- ContentResolver cr = getContentResolver();
- //取得電話本中開始一項的光標(biāo)
- Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
- //向下移動光標(biāo)
- while(cursor.moveToNext()){
- //取得聯(lián)系人名字
- int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
- String contact = cursor.getString(nameFieldColumnIndex);
- //取得電話號碼
- 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>
責(zé)任編輯:徐川
來源:
OSChina