我需要创建一个列表,其中包含设备上找到的所有电话号码。所以我做的是查询ContactsContract.Data.CONTENT_URI
如下:
Uri uri = Data.CONTENT_URI;
String[] PROJECTION = new String[] { Data.IN_VISIBLE_GROUP,// 0
Data.DISPLAY_NAME, // 1
Phone.NUMBER, // 2
Phone.TYPE, // 3
Phone.LABEL, // 4
};
String SELECTION = Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE
+ "' AND " + Data.IN_VISIBLE_GROUP + " = 1";
String[] SELECTARGS = null;
String SORTORDER = null;
Cursor c = getContentResolver().query(uri, PROJECTION, SELECTION,
SELECTARGS, SORTORDER);
当我在Nexus 4上运行代码时,无论我在人物应用程序(默认的联系人管理器)中设置的显示选项,光标始终都填充相同的联系人。不应该根据该设置更改Data.IN_VISIBLE_GROUP的值吗?我错过了什么吗?
答案 0 :(得分:3)
访问文档ContactsContract.Data
变量IN_VISIBLE_GROUP
int IN_VISIBLE_GROUP只读请参阅ContactsContract.Contacts。
关注ContactsContract.Contacts
并找到IN_VISIBLE_GROUP
解释为:
该联系人是否应该在该联系人中可见的指示符 UI。如果联系人至少有一个属于a的原始联系人,则为“1” 可见组;否则为“0”。
因此Data.IN_VISIBLE_GROUP
似乎与人物应用可见性状态有关。
另一方面,当您点击它时,您移动了here提到的地方:
反映任何GROUP_VISIBLE状态的标志 ContactsContract.CommonDataKinds.GroupMembership此联系人。 常数值:“in_visible_group”
GROUP_VISIBLE
指的是:
指示属于该组的联系人是否应该是的标志 在任何用户界面中都可见。
类型:INTEGER(boolean)常量值:“group_visible”
考虑到最后2个引号它应该按预期运行!