免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 17107 | 回复: 0
打印 上一主题 下一主题

android 联系人数据库(2.0以后) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-23 17:19 |只看该作者 |倒序浏览
转:marvin


android 联系人数据库(2.0以后)


最近研究了下android 2.0的联系人数据库。

主要数据有三张表:contacts, raw_contacts,data。

contacts:主要是raw_contacts的一个合并。

raw_contacts:是每条记录表示一条联系人。

data:最基本的表,其中包含所有联系人的数据。每条记录都有一个mime type代表该记录的类型。

新增一条联系人:

  1.         ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();        ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
  2.                 .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, mSelectedAccount.getType())
  3.                 .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, mSelectedAccount.getName())
  4.                 .build());        ops.add(ContentProviderOperation
  5.                .newInsert(ContactsContract.Data.CONTENT_URI)
  6.                 .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
  7.                 .withValue(ContactsContract.Data.MIMETYPE,
  8.                         ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
  9.                 .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name)
  10.                 .build());        ops.add(ContentProviderOperation
  11.                 .newInsert(ContactsContract.Data.CONTENT_URI)
  12.                 .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
  13.                 .withValue(ContactsContract.Data.MIMETYPE,
  14.                         ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
  15.                 .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phone)
  16.                 .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, phoneType).build());
  17.         ops.add(ContentProviderOperation
  18.                 .newInsert(ContactsContract.Data.CONTENT_URI)
  19.                 .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
  20.                 .withValue(ContactsContract.Data.MIMETYPE,
  21.                         ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)
  22.                 .withValue(ContactsContract.CommonDataKinds.Email.DATA, email)
  23.                .withValue(ContactsContract.CommonDataKinds.Email.TYPE, emailType).build());
  24.         // Ask the Contact provider to create a new contact        Log.i(TAG,
  25.                 "Selected account: " + mSelectedAccount.getName() + " ("
  26.                         + mSelectedAccount.getType() + ")");
  27.         Log.i(TAG, "Creating contact: " + name);
  28.         try {
  29.             getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
  30.         } catch (Exception e) {
  31.             // Display warning
  32.         }

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP