利用内容提供者来操作联系人数据库
添加权限
<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", 77777@qq.com);
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);
}
}