package com.itheima.contact;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.test.AndroidTestCase;
public class ContactTest extends AndroidTestCase {
private Uri rawContactsUri = Uri.parse("content://com.android.contacts/raw_contacts");
private Uri dataUri = Uri.parse("content://com.android.contacts/data");
public void testRead() {
ContentResolver resolver = getContext().getContentResolver();
List<Contact> list = new ArrayList<Contact>();
// 查询raw_contacts表, 得到所有的id, 每一个id代表一个联系人
Cursor rawContactsCursor = resolver.query(rawContactsUri, new String[] { "_id" }, null, null, null);
while (rawContactsCursor.moveToNext()) {
int id = rawContactsCursor.getInt(0);
Contact c = new Contact();
list.add(c);
// 用每个id作为条件, 查询data表
//这里如果写mimetype_id 会报异常 java.lang.IllegalArgumentException: Invalid column mimetype_id imetype_id 没有这一列 mimetype 关联好的
Cursor dataCursor = resolver.query(dataUri, new String[]{"mimetype", "data1"}, "raw_contact_id=?", new String[] { id + "" }, null);
while (dataCursor.moveToNext()) {
String mimetype = dataCursor.getString(0);
String data1 = dataCursor.getString(1);
if (mimetype.equals("vnd.android.cursor.item/name")) {
c.setName(data1);
} else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {
c.setPhone(data1);
} else if ("vnd.android.cursor.item/email_v2".equals(mimetype)) {
c.setEmail(data1);
}
}
}
for (Contact contact : list) {
System.out.println(contact);
}
}
public void testWriteContact() {
ContentResolver resolver = getContext().getContentResolver();
ContentValues values = new ContentValues();
// 先向raw_contacts表中写一个id, 自动生成
Uri resultUri = resolver.insert(rawContactsUri, values);
long id = ContentUris.parseId(resultUri);
// 然后用这个id向data表中写3条数据
values.put("raw_contact_id", id);
values.put("mimetype", "vnd.android.cursor.item/name");
values.put("data1", "LYD");
resolver.insert(dataUri, values);
values.put("mimetype", "vnd.android.cursor.item/phone_v2");
values.put("data1", "18801099999");
resolver.insert(dataUri, values);
values.put("mimetype", "vnd.android.cursor.item/email_v2");
values.put("data1", "lyd@itcast.cn");
resolver.insert(dataUri, values);
}
}
查询联系人
最新推荐文章于 2024-04-30 15:42:44 发布