ContactsContract.Contacts.IN_VISIBLE_GROUP在Android中是什么意思?

What does ContactsContract.Contacts.IN_VISIBLE_GROUP mean in Android?

来自 Android 开发者文档,这就是我得到的全部内容:

An indicator of whether this contact is supposed to be visible in the UI. "1" if the contact has at least one raw contact that belongs to a visible group; "0" otherwise.

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

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

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

感谢任何帮助!

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

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

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

特别是在 Google 中,每当您向某人发送电子邮件或从某人那里收到电子邮件时,该电子邮件地址都会自动添加到您的联系人中,添加到 All others in 组中,这就是您可能收到的原因在没有该标志的情况下查询时有大量联系人。