android中RawContacts.CONTENT_URI和ContactsContract.Contacts.CONTENT_URI的区别

Posted

技术标签:

【中文标题】android中RawContacts.CONTENT_URI和ContactsContract.Contacts.CONTENT_URI的区别【英文标题】:difference between RawContacts.CONTENT_URI and ContactsContract.Contacts.CONTENT_URI in android 【发布时间】:2014-03-31 18:27:37 【问题描述】:

android中的RawContacts.CONTENT_URI和ContactsContract.Contacts.CONTENT_URI有什么区别?

我正在尝试编写一个侦听本机通讯录变化的服务。那么,该用哪一个呢?

谢谢 尼兹

【问题讨论】:

【参考方案1】:

Contact(如用户所见)是 RawContact 的聚合集

RawContact 是与某个帐户或协议相关的一些详细信息

ContactsContract.Contacts.CONTENT_URI 通常是正确的,因为它可以从整组匹配的 RawContacts 中恢复正确的显示名称,并且可以帮助您加入所有链接的帐户

如果您想匹配与帐户/协议相关的特定 [set of] 联系人,则可以使用 RawContacts.CONTENT_URI

然后有各种数据类型/目录可以带回更广泛的数据。

您应该使用哪一个的问题归结为您正在观看的数据以及您是否/如何显示它,以及您尝试观看的行数。我经常说使用 ContactsContract 是正确的。

这还取决于您希望“通知”的粒度。 IE。内容观察者回调可以给你一个 URL 来告诉你发生了什么变化,但仅此而已,这意味着如果你只想对你知道已经改变的特定行采取行动,那么你将拥有观察不同的事情,而不是只想知道一些发生了变化并且是时候通知DataSetChanged了!

【讨论】:

以上是关于android中RawContacts.CONTENT_URI和ContactsContract.Contacts.CONTENT_URI的区别的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 4 中启用 android:largeHeap,在 Android 2.3 中禁用它

Android - 在 Android 1.6 中开发的应用程序可以在 Android 2.0 中运行吗?

如何在Android中启动JAVA程序

android中怎么设置组件在LinearLayout中居中

(Android) 在内部存储中查找路径 /Android

Android中常见的权限