package com.xushouwei.test;
import java.util.ArrayList;
import android.content.ContentProviderOperation;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.test.AndroidTestCase;
import android.util.Log;
public class ContactTest extends AndroidTestCase {
private static final String tag = "ContactTest";
// 获取所有联系人
public void testContacts() throws Exception {
Uri uri = Uri.parse("content://com.android.contacts/contacts");
ContentResolver contentResolver = getContext().getContentResolver();
Cursor cursor = contentResolver.query(uri, new String[] { "_id" }, null, null, null);
while (cursor.moveToNext()) {
// 得到联系人id
int contactid = cursor.getInt(0);
StringBuilder sb = new StringBuilder("contactid=");
sb.append(contactid);
uri = Uri.parse("content://com.android.contacts/contacts/" + contactid + "/data");
Cursor datacursor = contentResolver.query(uri, new String[] { "mimetype", "data1", "data2" }, null, null,
null);
while (datacursor.moveToNext()) {
String data = datacursor.getString(datacursor.getColumnIndex("data1"));
String type = datacursor.getString(datacursor.getColumnIndex("mimetype"));
if ("vnd.android.cursor.item/name".equals(type)) // 如果为姓名数据
{
sb.append(",name=" + data);
} else if ("vnd.android.cursor.item/email_v2".equals(type)) // 如果为email
{
sb.append(",email=" + data);
} else if ("vnd.android.cursor.item/phone_v2".equals(type)) // 如果为电话
{
sb.append(",phone=" + data);
}
}
Log.i(tag, sb.toString());
}
}
// 根据号码获取联系人的姓名
public void testContactNameByNumber() throws Exception {
// 定义一个变量用来存放你要查询的电话号码
String number = "13814042232";
Uri uri = Uri.parse("content://com.android.contacts/data/phones/filter/" + number);
ContentResolver resolver = getContext().getContentResolver();
Cursor cursor = resolver.query(uri, new String[] { "display_name" }, null, null, null);
if (cursor.moveToFirst()) {
String name = cursor.getString(0);
Log.i(tag, name);
}
cursor.close();
}
// 添加联系人
public void testAddContacts() throws Exception {
// 添加联系人步骤
// 添加一条数据到raw_contacts
Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
ContentResolver resolver = getContext().getContentResolver();
ContentValues values = new ContentValues();
// 得到添加的联系人的id
long contactid = ContentUris.parseId(resolver.insert(uri, values));
// 添加联系人姓名
uri = Uri.parse("content://com.android.contacts/data");
values.put("raw_contact_id", contactid);
values.put("mimetype", "vnd.android.cursor.item/name");
values.put("data2", "徐守威");
resolver.insert(uri, values);
// 添加联系人电话
values.clear();
values.put("raw_contact_id", contactid);
values.put("mimetype", "vnd.android.cursor.item/phone_v2");
values.put("data2", "2");
values.put("data1", "13888888888");
resolver.insert(uri, values);
// 添加联系人email
values.clear();
values.put("raw_contact_id", contactid);
values.put("mimetype", "vnd.android.cursor.item/email_v2");
values.put("data2", "2");
values.put("data1", "suqianxushouwei@sina.com");
resolver.insert(uri, values);
}
// 添加联系人(在同一个事务的添加)
public void testAddContacts2() throws Exception {
// 添加联系人步骤
// 添加一条数据到raw_contacts
Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
ContentResolver resolver = getContext().getContentResolver();
ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>();
ContentProviderOperation op1 = ContentProviderOperation.newInsert(uri).withValue("account_name", null).build();
operations.add(op1);
uri = Uri.parse("content://com.android.contacts/data");
ContentProviderOperation op2 = ContentProviderOperation.newInsert(uri).withValueBackReference("raw_contact_id", 0)
.withValue("mimetype", "vnd.android.cursor.item/name").withValue("data2", "盛敏").build();
operations.add(op2);
ContentProviderOperation op3 = ContentProviderOperation.newInsert(uri).withValueBackReference("raw_contact_id", 0)
.withValue("mimetype", "vnd.android.cursor.item/phone_v2").withValue("data2", "2").withValue("data1", "13366666666").build();
operations.add(op3);
ContentProviderOperation op4 = ContentProviderOperation.newInsert(uri).withValueBackReference("raw_contact_id", 0)
.withValue("mimetype", "vnd.android.cursor.item/email_v2").withValue("data2", "2").withValue("data1", "shouweixu@foxmail.com").build();
operations.add(op4);
resolver.applyBatch("com.android.contacts", operations);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
contacts.zip (27个子文件)
contacts
.project 844B
bin
contacts.apk 16KB
res
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
drawable-mdpi
ic_launcher.png 2KB
resources.ap_ 10KB
classes
com
xushouwei
test
ContactTest.class 5KB
contacts
R$string.class 439B
R$layout.class 406B
MainActivity.class 525B
R$drawable.class 419B
R.class 513B
R$attr.class 352B
classes.dex 6KB
proguard.cfg 1KB
.settings
org.eclipse.jdt.core.prefs 177B
AndroidManifest.xml 1KB
src
com
xushouwei
test
ContactTest.java 5KB
contacts
MainActivity.java 346B
project.properties 360B
res
values
strings.xml 185B
layout
main.xml 398B
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
drawable-mdpi
ic_launcher.png 3KB
.classpath 364B
gen
com
xushouwei
contacts
R.java 651B
assets
共 27 条
- 1
资源评论
徐守威
- 粉丝: 72
- 资源: 109
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功