Android_ContentProvider_访问通讯录
来源:互联网 发布:国外英语交流软件 编辑:程序博客网 时间:2024/05/22 08:02
本博文为子墨原创,转载请注明出处!
http://blog.csdn.net/zimo2013/article/details/14649351
1.简介
联系人提供者是一个很强很灵活的应用组件,用来管理联系人信息,可以方便的操作和查询联系人信息!
主要的3张表格,contact,raw contact,data,但是我们操作主要为raw contact,data两张表
raw contacttable
data table
2.插入联系人
/** * 使用批处理,插入联系人信息 * 插入姓名,email,家庭电话,工作电话,手机号码信息 * @param view */public void insert() {String name = etName.getText().toString().trim();String email = etEmail.getText().toString().trim();String numHome = etNumHome.getText().toString().trim();String numWork = etNumWork.getText().toString().trim();String numMobile = etNumMobile.getText().toString().trim();ArrayList<ContentProviderOperation> list = new ArrayList<ContentProviderOperation>();ContentProviderOperation.Builder builder = null;// 插入原始数据builder = ContentProviderOperation.newInsert(RawContacts.CONTENT_URI).withValue(RawContacts.ACCOUNT_NAME, "").withValue(RawContacts.ACCOUNT_TYPE, "").withValue(RawContacts.DELETED, 0);list.add(builder.build());// 插入用户名builder = ContentProviderOperation.newInsert(Data.CONTENT_URI).withValue(StructuredName.DISPLAY_NAME, name).withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE).withValueBackReference(Data.RAW_CONTACT_ID, 0);list.add(builder.build());// 插入emailbuilder = ContentProviderOperation.newInsert(Data.CONTENT_URI).withValue(Email.ADDRESS, email).withValue(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE).withValueBackReference(Data.RAW_CONTACT_ID, 0);list.add(builder.build());// 插入 家庭电话号码builder = ContentProviderOperation.newInsert(Data.CONTENT_URI).withValue(Phone.NUMBER, numHome).withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE).withValue(Phone.TYPE, Phone.TYPE_HOME).withValueBackReference(Data.RAW_CONTACT_ID, 0);list.add(builder.build());// 插入工作电话号码builder = ContentProviderOperation.newInsert(Data.CONTENT_URI).withValue(Phone.NUMBER, numWork).withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE).withValue(Phone.TYPE, Phone.TYPE_WORK).withValueBackReference(Data.RAW_CONTACT_ID, 0);list.add(builder.build());// 插入手机号码builder = ContentProviderOperation.newInsert(Data.CONTENT_URI).withValue(Phone.NUMBER, numMobile).withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE).withValue(Phone.TYPE, Phone.TYPE_MOBILE).withValueBackReference(Data.RAW_CONTACT_ID, 0);list.add(builder.build());try {resolver.applyBatch(ContactsContract.AUTHORITY, list);showOk();System.out.println("插入成功");} catch (Exception e) {e.printStackTrace();System.out.println("插入失败!");}}
3.访问通讯录
/** * 自定义加载线程,访问通讯录联系人信息 * * @author Administrator * */private class LoadContactThread extends Thread {@Overridepublic void run() {List<ContactsInfo> infos = new ArrayList<ContactsInfo>();Cursor cursor = resolver.query(RawContacts.CONTENT_URI,new String[] { RawContacts._ID }, RawContacts.DELETED + "=?", new String[] { "0" }, null);while (cursor.moveToNext()) {ContactsInfo info = new ContactsInfo();String id = cursor.getString(0);info.setId(id);Cursor c = resolver.query(Data.CONTENT_URI, new String[] {"data1", "data2", "mimetype" }, Data.RAW_CONTACT_ID+ "=?", new String[] { id }, null);while (c.moveToNext()) {String data = c.getString(0);String type = c.getString(1);String mimetype = c.getString(2);if (StructuredName.CONTENT_ITEM_TYPE.equals(mimetype)) { // 用户名info.setName(data);} else if (Email.CONTENT_ITEM_TYPE.equals(mimetype)) { // emailinfo.setEmail(data);} else if (Phone.CONTENT_ITEM_TYPE.equals(mimetype)) { // 电话int t = Integer.parseInt(type);if (Phone.TYPE_HOME == t) { // 家庭电话info.setNumHome(data);} else if (Phone.TYPE_WORK == t) { // 工作电话info.setNumWork(data);} else if (Phone.TYPE_MOBILE == t) {// 手机info.setNumMobile(data);}}}c.close(); // 关闭游标infos.add(info);// 添加进集合}cursor.close(); // 关闭游标Message msg = handler.obtainMessage();msg.obj = infos;handler.sendMessage(msg);}}
- Android_ContentProvider_访问通讯录
- 通讯录访问
- 通讯录访问测试X3
- 通讯录访问测试X3
- ContentResolver访问通讯录
- iOS 访问通讯录
- IOS---访问通讯录
- IOS如何访问通讯录
- iOS 访问通讯录
- iOS 访问通讯录
- iOS -- 访问通讯录
- IOS8 通讯录访问授权
- ios 访问通讯录
- IOS访问通讯录
- 访问手机通讯录
- IOS如何访问通讯录
- 手机通讯录访问
- ContentProvider访问通讯录
- ndklog
- OCP-1Z0-053-V12.02-582题
- ZOJ 1108 FatMouse's Speed (HDU 1160) DP
- Linux NIS服务
- oracle删除主键约束的问题m
- Android_ContentProvider_访问通讯录
- 卡特兰数在多种问题下的应用 组合数学-Catalan数
- lightoj 1147 - Tug of War 动态规划
- safari中不能响应click()的问题
- js中sleep的问题
- HDU 4772 模拟题
- 对浮点异常值NAN、QNAN、 SNAN、 IND、 INF的处理
- OCP-1Z0-053-V12.02-581题
- windows 7无线网络共享的方法