- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
联系人提供程序精要
联系人提供程序
联系人提供程序是一个强大而又灵活的 Android 组件,用于管理设备上有关联系人数据的中央存储库。 联系人提供程序是您在设备的联系人应用中看到的数据源,您也可以在自己的应用中访问其数据,并可在设备与在线服务之间传送数据。 提供程序储存有多种数据源,由于它会试图为每个联系人管理尽可能多的数据,因此造成其组织结构非常复杂。 为此,该提供程序的 API 包含丰富的协定类和接口,为数据检索和修改提供便利。
本指南介绍下列内容:
提供程序基本结构
如何从提供程序检索数据
如何修改提供程序中的数据
如何编写用于同步服务器数据与联系人提供程序数据的同步适配器。
联系人提供程序组织
联系人提供程序是 Android 内容提供程序的一个组件。它保留了三种类型的联系人数据,每一种数据都对应提供程序提供的一个表,如图 1 所示:
图 1. 联系人提供程序表结构。
这三个表通常以其协定类的名称命名。这些类定义表所使用的内容 URI、列名称及列值相应的常量:
ContactsContract.Contacts 表
表示不同联系人的行,基于聚合的原始联系人行。
ContactsContract.RawContacts 表
包含联系人数据摘要的行,针对特定用户帐户和类型。
ContactsContract.Data 表
包含原始联系人详细信息(例如电子邮件地址或电话号码)的行。
由 ContactsContract 中的协定类表示的其他表是辅助表,联系人提供程序利用它们来管理其操作,或为设备的联系人或电话应用中的特定功能提供支持。
原始联系人
一个原始联系人表示来自某一帐户类型和帐户名称、有关某个联系人的数据。 由于联系人提供程序允许将多个在线服务作为某一联系人的数据源,因此它允许同一联系人对应多个原始联系人。 借助支持多个原始联系人的特性,用户还可以将某一联系人在帐户类型相同的多个帐户中的数据进行合并。
原始联系人的大部分数据并不存储在 ContactsContract.RawContacts 表内,而是存储在 ContactsContract.Data 表中的一行或多行内。每个数据行都有一个 Data.RAW_CONTACT_ID 列,其中包含其父级 ContactsContract.RawContacts 行的 vider.BaseColumns#_ID RawContacts._ID 值。
重要的原始联系人列
表 1 列出了 ContactsContract.RawContacts 表中的重要列。 请阅读表后的说明:
表 1. 重要的原始联系人列。
说明
以下是关于 ContactsContract.RawContacts 表的重要说明:
原始联系人的姓名并不存储其在 ContactsContract.RawContacts 中的行内,而是存储在 ContactsContract.Data 表的ContactsContract.CommonDataKinds.StructuredName 行内。一个原始联系人在 ContactsContract.Data 表中只有一个该类型的行。
注意:要想在原始联系人行中使用您自己的帐户数据,必须先在 AccountManager 中注册帐户。 为此,请提示用户将帐户类型及其帐户名称添加到帐户列表。 如果您不这样做,联系人提供程序将自动删除您的原始联系人行。
例如,如果您想让您的应用为您域名为 com.example.dataservice、基于 Web 的服务保留联系人数据,并且您的服务的用户帐户是becky.sharp@,则用户必须先添加帐户“类型”(com.example.dataservice) 和帐户“名称”(becky.smart@),然后您的应用才能添加原始联系人行。 您可以在文档中向用户解释这项要求,也可以提示用户添加类型和名称,或者同时采用这两种措施。 下文对帐户类型和帐户名称做了更详尽的描述。
原始联系人数据来源
为理解原始联系人的工作方式,假设有一位用户“Emily Dickinson”,她的设备上定义了以下三个用户帐户:
emily.dickinson@
emilyd@
Twitter 帐户“belle_of_amherst”
该用户已在 Accounts 设置中为全部三个帐户启用了 Sync Contacts。
假定 Emily Dickinson 打开一个浏览器窗口,以 emily.dickinson@ 身份登录 Gmail,然后打开 “联系人”,并添加“Thomas Higginson”。后来,她以 emilyd@ 身份登录 Gmail,并向“Thomas Higginson”发送一封电子邮件,此操作会自动将他添加为联系人。 她还在 Twitter 上关注了“col
您可能关注的文档
- 考试从来就没有粗心这回事精要.pptx
- 美国的诞生精要.ppt
- 考虑应力历史下高压固结试验计算高层建筑沉降方法精要.doc
- 考点18:弹力重力摩擦力精要.doc
- 考试题库icrosoftWord文档精要.doc
- 考试:爆破基础理论精要.doc
- 耐压试验谐振装置精要.pptx
- 耐酸砖铺砌施工方案精要.doc
- 耐火泥浆项目可行性研究报告(目录)精要.doc
- 耐火粘土尾矿加工项目可行性研究报告(目录)精要.doc
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
文档评论(0)