忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 8504 | 回复: 0

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

论坛徽章:
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.         }

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

本版积分规则

DTCC2018购票6.8折优惠进行时

中国数据库技术大会是国内数据库及大数据领域规模最大、最受欢迎的技术交流盛会。 2018年5月10-12日,第九届中国数据库技术大会将如约而至。本届大会以“数领先机•智赢未来”为主题,设定2大主会场及20个技术专场,邀请来自国内外互联网、金融、教育等行业百余位技术专家,共同探讨Oracle、MySQL、NoSQL、大数据等领域的前瞻性热点话题与技术。
----------------------------------------
优惠时间:2018年2月13日前

报名链接>>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP