android developer tiny share-20170708
来源:互联网 发布:程序员经典面试题目 编辑:程序博客网 时间:2024/06/01 07:54
今天继续讲android的Contact ContentProvider,讲联系人的元数据,这些元数据分布在各个表的某些列里,今天讲几个比较重要的。
以下是android developer官方讲解:
联系人提供程序元数据
联系人提供程序管理用于追踪存储区中联系人数据状态的数据。 这些有关存储区的元数据存储在各处,其中包括原始联系人表行、数据表行和联系人表行、 ContactsContract.Settings 表以及 ContactsContract.SyncState 表。 下表显示的是每一部分元数据的作用:
表 3. 联系人提供程序中的元数据
“1”:上次同步以来发生了变化,需要同步回服务器。标记设备上因发生变化而需要同步回服务器的原始联系人。 当 Android 应用更新行时,联系人提供程序会自动设置该值。
修改原始联系人表或数据表的同步适配器应始终向他们使用的内容 URI 追加字符串 CALLER_IS_SYNCADAPTER。 这可以防止提供程序将行标记为已更新。 否则,即使服务器是修改的来源,同步适配器修改仍显示为本地修改,并会发送到服务器。ContactsContract.RawContactsVERSION此行的版本号。每当行或其相关数据发生变化时,联系人提供程序都会自动增加此值。ContactsContract.DataDATA_VERSION此行的版本号。每当数据行发生变化时,联系人提供程序都会自动增加此值。ContactsContract.RawContactsSOURCE_ID一个字符串值,用于在创建此原始联系人的帐户中对该联系人进行唯一标识。当同步适配器创建新原始联系人时,此列应设置为该原始联系人在服务器中的唯一 ID。 当 Android 应用创建新原始联系人时,应将此列留空。 这是为了向同步适配器表明,它应该在服务器上创建新原始联系人,并获取 SOURCE_ID 的值。
具体地讲,对于每个帐户类型,该源 ID 都必须是唯一的,并且应在所有同步中保持稳定:
- 唯一:帐户的每个原始联系人都必须有自己的源 ID。如果您不强制执行此要求,会在联系人应用中引发问题。 请注意,帐户类型相同的两个原始联系人可以具有相同的源 ID。 例如,允许帐户 emily.dickinson@gmail.com 的原始联系人“Thomas Higginson”与帐户 emilyd@gmail.com 的原始联系人“Thomas Higginson”具有相同的源 ID。
- 稳定:源 ID 是该原始联系人在在线服务中的数据的永久性组成部分。 例如,如果用户从应用设置中清除存储的联系人数据并重新同步,则恢复的原始联系人的源 ID 应与以前相同。 如果您不强制执行此要求,快捷方式将停止工作。
“1”:系统允许此组中的联系人在应用 UI 中处于可见状态。此列用于兼容那些允许用户隐藏特定组中联系人的服务器。ContactsContract.SettingsUNGROUPED_VISIBLE“0”:对于此帐户和帐户类型,未归入组的联系人在 Android 应用 UI 中处于不可见状态。
“1”:对于此帐户和帐户类型,未归入组的联系人在应用 UI 中处于可见状态。默认情况下,如果联系人的所有原始联系人都未归入组,则它们将处于不可见状态(原始联系人的组成员身份通过 ContactsContract.Data 表中的一个或多个 ContactsContract.CommonDataKinds.GroupMembership 行指示)。 通过在 ContactsContract.Settings 表行中为帐户类型和帐户设置此标志,您可以强制未归入组的联系人处于可见状态。 此标志的一个用途是显示不使用组的服务器上的联系人。ContactsContract.SyncState(all)此表用于存储同步适配器的元数据。利用此表,您可以将同步状态及其他同步相关数据持久地存储在设备中。
阅读全文
0 0
- android developer tiny share-20170708
- android developer tiny share-20160627
- android developer tiny share-20160628
- android developer tiny share-20160629
- android developer tiny share-20160630
- android developer tiny share-20160701
- android developer tiny share-20160704
- android developer tiny share-20160705
- android developer tiny share-20160706
- android developer tiny share-20160707
- android developer tiny share-20160708
- android developer tiny share-20160711
- android developer tiny share-20160712
- android developer tiny share-20160713
- android developer tiny share-20160714
- android developer tiny share-20160715
- android developer tiny share-20160718
- android developer tiny share-20160719
- Android自定义控件实现多行文字自动向上滚动轮播效果(伪文字轮播)
- Spring Boot实战学习笔记3
- Mybatis初级应用——实现增删查改
- java基础之集合
- Python 系统监控管理模块psutil学习
- android developer tiny share-20170708
- vc mfc Edit SetFocus 设置焦点 无效 失败
- 7月记录贴
- UVA
- 18.自定义UI(画布)-单点触摸-多点触摸
- HDU 1281 棋盘游戏 (枚举+匈牙利找关键位置)
- Spotfire简介
- hdu 2072 : 单词数 (水)
- React基本原理——路由