ContactsContract.Contacts.IN_VISIBLE_GROUP 在 Android 中是啥意思?

Posted

技术标签:

【中文标题】ContactsContract.Contacts.IN_VISIBLE_GROUP 在 Android 中是啥意思?【英文标题】:What does ContactsContract.Contacts.IN_VISIBLE_GROUP mean in Android?ContactsContract.Contacts.IN_VISIBLE_GROUP 在 Android 中是什么意思? 【发布时间】:2015-04-24 07:01:42 【问题描述】:

android 开发者文档中,我得到的只有这些:

此联系人是否应该在 UI 中可见的指示器。 “1”,如果联系人至少有一个属于可见组的原始联系人;否则为“0”。

这基本上是什么意思?使用这个标志的目的是什么?

我已经尝试了很长时间的接触试验,结果看起来令人困惑。当我获取此标志为 ON 的联系人时,它会获取我认为是与我的 Google 帐户同步的最新联系人的联系人,以及我在默认电话簿中本地添加的联系人。例如,这会获取大约 912 个联系人。

但是,关闭此标志后,我获得了大量的联系人,其中一些我几乎认不出来,也不明白为什么他们一开始就在这里。这会获取大约 3050 个联系人!

感谢任何帮助!

【问题讨论】:

嘿,你能找到这个标志到底是什么吗? 【参考方案1】:

Android 联系人存储在Accounts(如Google、Yahoo、Linkedin、Microsoft Exchange)中,在每个帐户中,联系人存储在Groups(如朋友、家人、商务联系人)还有一个特殊的组对于不属于任何组的联系人,该组通常称为“All others in <group-name>”)。

在 Android 附带的大多数联系人应用程序中,用户可以选择 Custom 视图,在该视图中,他可以使帐户中的组在主联系人屏幕中可见或隐藏,例如,用户可以选择显示 Friends组,但不是他的 Google 通讯录帐户中的 Family 组。

此选择将被应用程序使用IN_VISIBLE_GROUP 字段查询联系人引用,如果联系人是至少一个可见组的一部分,则为真。 特殊的All others in 组几乎总是不可见的组,因此通常在“通讯录”应用程序中隐藏。

特别是在 Google 中,每当您向某人发送电子邮件或收到某人的电子邮件时,该电子邮件地址会自动添加到您的联系人中,添加到 All others in 组中,这就是为什么您在不进行查询时可能会收到大量联系人的原因那个标志。

【讨论】:

以上是关于ContactsContract.Contacts.IN_VISIBLE_GROUP 在 Android 中是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

ContactsContract.Contacts.IN_VISIBLE_GROUP 在 Android 中是啥意思?

当且仅当 ContactsContract.Contacts.CONTENT_URI 更改时,ContentObserver 应该调用

为啥 PhoneLookup 和 ContactsContract.Contacts 选择器之间的联系人 ID 不匹配?

无法从 ContactsContract.Contacts.CONTENT_URI 获取已删除的联系人

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

从 Android ContactsContract.Contacts 查询所有联系人的许多数据时如何提高性能?