android developer tiny share-20170708

今天继续讲android的Contact ContentProvider,讲联系人的元数据,这些元数据分布在各个表的某些列里,今天讲几个比较重要的。

以下是android developer官方讲解:



联系人提供程序元数据


联系人提供程序管理用于追踪存储区中联系人数据状态的数据。 这些有关存储区的元数据存储在各处,其中包括原始联系人表行、数据表行和联系人表行、 ContactsContract.Settings 表以及 ContactsContract.SyncState 表。 下表显示的是每一部分元数据的作用:

表 3. 联系人提供程序中的元数据

含义
ContactsContract.RawContactsDIRTY“0”:上次同步以来未发生变化。
“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 应与以前相同。 如果您不强制执行此要求,快捷方式将停止工作。
ContactsContract.GroupsGROUP_VISIBLE“0”:此组中的联系人在 Android 应用 UI 中不应处于可见状态。
“1”:系统允许此组中的联系人在应用 UI 中处于可见状态。
此列用于兼容那些允许用户隐藏特定组中联系人的服务器。
ContactsContract.SettingsUNGROUPED_VISIBLE“0”:对于此帐户和帐户类型,未归入组的联系人在 Android 应用 UI 中处于不可见状态。
“1”:对于此帐户和帐户类型,未归入组的联系人在应用 UI 中处于可见状态。
默认情况下,如果联系人的所有原始联系人都未归入组,则它们将处于不可见状态(原始联系人的组成员身份通过 ContactsContract.Data 表中的一个或多个 ContactsContract.CommonDataKinds.GroupMembership 行指示)。 通过在 ContactsContract.Settings 表行中为帐户类型和帐户设置此标志,您可以强制未归入组的联系人处于可见状态。 此标志的一个用途是显示不使用组的服务器上的联系人。
ContactsContract.SyncState(all)此表用于存储同步适配器的元数据。利用此表,您可以将同步状态及其他同步相关数据持久地存储在设备中。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值