android 内容提供者 系统通讯录
2014-07-10 16:20
337 查看
1.添加联系人
2.在同一个事务中完成联系人各项数据的添加
3.获取所有联系人
4.根据号码获取联系人的姓名
//添加联系人 public void testAddContact() throws Exception{ Uri uri = Uri.parse("content://com.android.contacts/raw_contacts"); ContentResolver resolver = getContext().getContentResolver(); ContentValues values = new ContentValues(); 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", "13670000000"); 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", "zhangxx@csdn.net"); resolver.insert(uri, values); }
2.在同一个事务中完成联系人各项数据的添加
public void testAddContact2() 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", "李小龙") .build(); operations.add(op2); ContentProviderOperation op3 = ContentProviderOperation.newInsert(uri) .withValueBackReference("raw_contact_id", 0) .withValue("mimetype", "vnd.android.cursor.item/phone_v2") .withValue("data1", "13560650505") .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", "liming@sohu.com") .withValue("data2", "2") .build(); operations.add(op4); resolver.applyBatch("com.android.contacts", operations); }
3.获取所有联系人
public void testContacts() 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 contactid = cursor.getInt(0); StringBuilder sb = new StringBuilder("contactid="); sb.append(contactid); uri = Uri.parse("content://com.android.contacts/contacts/"+ contactid+ "/data"); Cursor datacursor = resolver.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)){//phone sb.append(",phone="+ data); } } Log.i(TAG, sb.toString()); } }
4.根据号码获取联系人的姓名
public void testContactNameByNumber() throws Exception{ String number = "18601025011"; 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(); }
相关文章推荐
- android: 通过内容提供器读取系统联系人
- 通过系统自带的内容提供器(ContentResolver)读取系统的通讯录,并设置点击事件
- Android内容提供器简单实例(读取系统联系人)
- android_访问系统短信内容提供者
- Android 拿系统提供的内容提供者(联系人)demo
- Android——contentProvider内容提供者2,获取系统的内容
- Android初级开发(七)——内容提供器—读取系统联系人
- Android 内容提供器---内容提供器基础(从提供器中获取数据)
- Android 开发之 ContentProvider 内容提供者
- Android用户输入系统和移植内容概要
- Android 内容提供器---内容提供器基础(内容的统一资源标识(URIs))
- Android 内容提供器---简介
- Android 内容提供器---简介
- 系出名门Android(9) - 数据库支持(SQLite), 内容提供器(ContentProvider)
- Android 内容提供器---内容提供器基础(访问提供器)
- Android 内容提供器---内容提供器基础(访问提供器)
- Android 内容提供器---内容提供器基础(概述)
- Android用户输入系统和移植内容概要
- 主要的CMS(内容管理系统)提供商
- android基础--内容提供者