先大致分析下表的结构  账户表 contacts  --- 联系人表rawcontacts --- 联系人详细数据表 data 依此是一对多的关系。

我们要加的字段就是新增一个字段及其相关字段(minitype,data1等) 到data表里,关联上rawcontacts contacts即可。

android 联系人 代码主要分布在四个地方:

1 framwork/base/core/java/android/provider/

framwork下面主要是系统公用的数据字段

比如: framwork/base/core/java/android/provider/contacts.java

里面会有一些 联系人数据库里面的 字段: notes,email,name


2 packages/providers/contactsprovider/


providers 下面 主要是 数据库表的创建和增删查改的操作

增删查改主要是在 contactsprovider2.java里面


3 packages/apps/contacts

contacts下面则主要是联系人的显示。

而具体的操作好多都是调用 contactscommon里面的view 或 方法。

4 packages/apps/contactscommon

contactscommon下面主要是一些表的通用操作,自定义view。比如联系人 邮箱字段的显示,添加操作


下面就以 添加一个 生日字段为例 来 梳理下 整个流程。

1 framwork 下面 添加 字段

contacts下面:

contactscontract下面:


下面 进入 provider

contactsprovider2 会对datarowhandler 进行数据的增删查找,我们只需继承复写一个并将其加入进来

下面 legacyapisupport (应该是对之前版本及不兼容接口的再处理,就没咋动)

接下来就是 contactscommon

这里的联系人的每一行对应一个dataitem 我们要继承这个dataitem

账户基类 需要添加对这个字段的支持 BaseAccountType

并看看是否所有的账户都需要显示这个字段,然后个个账户自行配置该字段

最后 就是contacts 里面了

这里需要对新增加的字段显示,QuickContactActivity 里面 dataitemToEntry 方法里增加对该数据的判断并进行显示。

更多相关文章

  1. Content Provider初谈和Android联系人信息
  2. android 数据库 SQLiteOpenHelper和ContentProvider学习笔记---
  3. Android中ps命令各字段的含义
  4. Android-->获取所有联系人以及所有的字段(联系人头像,邮箱,地址,
  5. 怎么去掉联系人、通话记录、拨号列表界面中的电话号码中间的空格
  6. android 获取手机中的联系人
  7. 转:Android之通信录中的联系人操作
  8. Android之通信录中的联系人操作

随机推荐

  1. android 开发中的Log
  2. 基于ffmpeg的Android播放器开源代码
  3. android图片轮播+点击跳转广告页面
  4. android 按键
  5. 2011.06.29(2)——— android 完全退出
  6. Android(安卓)ContentProvider的介绍
  7. 小米,红米手机android 6.0以下 权限管理
  8. 《Android(安卓)Studio 问题解决集锦》
  9. 林志华_Android
  10. cmake 编译 ogre3D(version1.9) for androi