android 内容提供者 系统通讯录
来源:互联网 发布:按键精灵调用vb 编辑:程序博客网 时间:2024/06/05 02:30
1.添加联系人
//添加联系人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);//添加Emailvalues.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)){//emailsb.append(",email="+ data);}else if("vnd.android.cursor.item/phone_v2".equals(type)){//phonesb.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();}
0 0
- android 内容提供者 系统通讯录
- 内容提供者访问通讯录
- Android内容提供者(一)读取系统联系人
- 系统内容提供者
- 安卓之内容提供者获取通讯录
- android基础--内容提供者
- Android ContentProvider(内容提供者)
- Android 内容提供者
- android内容提供者ContentProvider
- android---内容提供者
- Android--- ContentProvider(内容提供者)
- Android基础--内容提供者
- android下内容提供者
- android的内容提供者
- Android 内容提供者ContentProvider
- Android基础知识:内容提供者
- android内容提供者
- Android内容提供者Provider
- 全栈JavaScript之路( 二十四 )DOM2、DOM3, 不涉及XML命名空间的扩展
- XAML中hub控件的使用感受
- STL——map
- FragmentTabHost切换Fragment,与ViewPager切换Fragment时重新onCreateView的问题
- javascript作用域链比较全的介绍
- android 内容提供者 系统通讯录
- 我眼中的各种编程语言
- Linux入门
- adt-bundle-windows-x86 出现的问题
- jQuery源码学习之二 (部分变量解释说明)
- 双因素认证
- leetcode-Linked List Cycle
- Training--使用Fragment创建动态UI(3)-- 与其他Fragment通信
- 如何编译OpenWrt