Android 联系人的读取,查询,添加
来源:互联网 发布:asp聊天室源码 编辑:程序博客网 时间:2024/05/17 12:07
先加二个读和写权限:
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
package com.eboy.test;
import java.util.ArrayList;
import android.content.ContentProviderOperation;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.test.AndroidTestCase;
import android.util.Log;
public class ContectTest extends AndroidTestCase {
private static final String TAG = "TestContact";
//查询所有联系人的姓名,电话,邮箱
public void TestContact() throws Exception {
Uri uri = Uri.parse("content://com.android.contacts/contacts");
ContentResolver resolver = getContext().getContentResolver();
Cursor cursor = resolver.query(uri, new String[]{"_id"}, null, null, null);
while (cursor.moveToNext()) {
int contractID = cursor.getInt(0);
StringBuilder sb = new StringBuilder("contractID=");
sb.append(contractID);
uri = Uri.parse("content://com.android.contacts/contacts/" + contractID + "/data");
Cursor cursor1 = resolver.query(uri, new String[]{"mimetype", "data1", "data2"}, null, null, null);
while (cursor1.moveToNext()) {
String data1 = cursor1.getString(cursor1.getColumnIndex("data1"));
String mimeType = cursor1.getString(cursor1.getColumnIndex("mimetype"));
if ("vnd.android.cursor.item/name".equals(mimeType)) { //是姓名
sb.append(",name=" + data1);
} else if ("vnd.android.cursor.item/email_v2".equals(mimeType)) { //邮箱
sb.append(",email=" + data1);
} else if ("vnd.android.cursor.item/phone_v2".equals(mimeType)) { //手机
sb.append(",phone=" + data1);
}
}
cursor1.close();
Log.i(TAG, sb.toString());
}
cursor.close();
}
//查询指定电话的联系人姓名,邮箱
public void testContactNameByNumber() throws Exception {
String number = "18052369652";
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 testAddContact() throws Exception {
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", "jack")
.build();
operations.add(op2);
ContentProviderOperation op3 = ContentProviderOperation.newInsert(uri)
.withValueBackReference("raw_contact_id", 0)
.withValue("mimetype", "vnd.android.cursor.item/phone_v2")
.withValue("data1", "1353*******")
.withValue("data2", "2")
.build();
operations.add(op3);
ContentProviderOperation op4 = ContentProviderOperation.newInsert(uri)
.withValueBackReference("raw_contact_id", 0)
.withValue("mimetype", "vnd.android.cursor.item/email_v2")
.withValue("data1", "asdfasfad@163.com")
.withValue("data2", "2")
.build();
operations.add(op4);
resolver.applyBatch("com.android.contacts", operations);
}
0 0
- Android 联系人的读取,查询,添加
- Android 联系人的读取,查询,添加
- Android 联系人的读取查询添加
- Android 联系人的读取,查询,添加
- Android 自定义添加,查询联系人
- Android--读取通讯录并添加联系人
- Android--读取通讯录并添加联系人
- Android添加联系人信息并读取
- Android ContentProvider之读取、添加联系人
- Android读取联系人的信息
- Android读取联系人的信息
- Android读取手机的联系人
- 1读取、添加联系人
- 添加和读取联系人
- Android中联系人的操作(读取和写入联系人)
- Android 联系人开发- 查询联系人
- Android联系人2--联系人查询
- Android联系人4--联系人查询
- 2016年Android恶意软件专题报告
- 在控制类的方法参数中利用javabean(实体类)来收集参数 (10)
- Retrofit+Rxjava+SqlBrite+SqlDelight实现多文件断点续传下载
- Android ProgressDialog使用
- 升级到SPRING 4.*后,JACKSON的包改变
- Android 联系人的读取,查询,添加
- Java final关键字
- java实现用户分页消息功能
- 最短路径—Dijkstra算法和Floyd算法
- springmvc requestbody 返回json 乱码问题
- axis开发webservice
- OpenStack与SDN控制器的集成
- 【脚本语言系列】关于Python机器学习scikits-learn,你需要知道的事
- Python的虚拟环境virtualenv