利用内容提供者来操作联系人数据库
添加权限
<uses-permission android:name="android.permission.READ_CONTACTS"/> <uses-permission android:name="android.permission.WRITE_CONTACTS"/> package cn.itcast.contacts.test;import android.content.ContentUris;
import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import android.test.AndroidTestCase;public class TestContacts extends AndroidTestCase {
public void readContacts() throws Exception{ //1. 查看源代码 // com.android.contacts/raw_contacts Uri uri = Uri.parse("content://com.android.contacts/raw_contacts"); Cursor cursor = getContext().getContentResolver().query(uri, null, null, null, null); while (cursor.moveToNext()) { String id = cursor.getString( cursor.getColumnIndex("_id")); String name = cursor.getString( cursor.getColumnIndex("display_name")); //System.out.println(id); System.out.println("姓名"+ name); //System.out.println("--"); Uri dataUri = Uri.parse("content://com.android.contacts/data"); Cursor datacursor = getContext().getContentResolver().query(dataUri, null, "raw_contact_id=?", new String[]{id}, null); while (datacursor.moveToNext()) { /* System.out.println( datacursor.getString(datacursor.getColumnIndex("data1"))); System.out.println( datacursor.getString( datacursor.getColumnIndex("mimetype"))); System.out.println("~~~~~~~~~~~~~");*/ if("vnd.android.cursor.item/phone_v2".equals(datacursor.getString( datacursor.getColumnIndex("mimetype")))){ System.out.println("电话"+datacursor.getString(datacursor.getColumnIndex("data1"))); }else if("vnd.android.cursor.item/email_v2".equals(datacursor.getString( datacursor.getColumnIndex("mimetype")))){ System.out.println("邮箱"+datacursor.getString(datacursor.getColumnIndex("data1"))); } }datacursor.close(); } cursor.close(); } public void insertContacts(){ Uri uri = Uri.parse("content://com.android.contacts/raw_contacts"); ContentValues values = new ContentValues(); values.put("display_name", "zhaoba"); Uri inserturi = getContext().getContentResolver().insert(uri, values); //得到插入的数据 在数据库中的_id long id = ContentUris.parseId(inserturi); Uri dataUri = Uri.parse("content://com.android.contacts/data"); ContentValues phonevalues = new ContentValues(); phonevalues.put("data1", "7777"); phonevalues.put("raw_contact_id", id); phonevalues.put("mimetype", "vnd.android.cursor.item/phone_v2"); getContext().getContentResolver().insert(dataUri, phonevalues); ContentValues emailvalues = new ContentValues(); emailvalues.put("data1", ); emailvalues.put("raw_contact_id", id); emailvalues.put("mimetype", "vnd.android.cursor.item/email_v2"); getContext().getContentResolver().insert(dataUri, emailvalues); ContentValues namevValues = new ContentValues(); namevValues.put("mimetype", "vnd.android.cursor.item/name"); namevValues.put("raw_contact_id", id); namevValues.put("data1", "yunchao"); getContext().getContentResolver().insert(dataUri, namevValues); } }