Android通過ContentProvider取得電話本的數據
作者:佚名
這里介紹通過ContentProvider取得電話本的數據的方法,先通過getContentResolver方法來取得一個ContentResolver對象,然后通過其query方法查詢出符合標準的電話本記錄,最后將這些數據都顯示在一個TextView中即可。
ContentProvider為存儲和獲取數據提供了統一的接口。ContentProvide對數據進行封裝,不用關心數據存儲的細節。使用表的形式來組織數據。
這里介紹通過ContentProvider取得電話本的數據的方法,先通過getContentResolver方法來取得一個ContentResolver對象,然后通過其query方法查詢出符合標準的電話本記錄,最后將這些數據都顯示在一個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();
- //取得電話本中開始一項的光標
- Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
- //向下移動光標
- while(cursor.moveToNext()){
- //取得聯系人名字
- 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();
- //設置TextView 顯示的內容
- tv.setText(string);
- //顯示到屏幕
- setContentView(tv);
- }
- }
TextView設置中的代碼如下:
- <uses-permission
- android:name="android.permission.READ_CONTACTS">
- </uses-permission>
責任編輯:徐川
來源:
OSChina