Android ContactsContract.Data.CONTENT\u URI未显示所有联系人
我使用此方法返回具有给定组ID的所有联系人:Android ContactsContract.Data.CONTENT\u URI未显示所有联系人,android,Android,我使用此方法返回具有给定组ID的所有联系人: public ArrayList<ContactEntity> getContactListByGroup(String groupID) { if (groupID != null) { ArrayList<ContactEntity> contacts = new ArrayList<ContactEntity>(); Uri group
public ArrayList<ContactEntity> getContactListByGroup(String groupID) {
if (groupID != null) {
ArrayList<ContactEntity> contacts = new ArrayList<ContactEntity>();
Uri groupURI = ContactsContract.Data.CONTENT_URI;
String[] projection = new String[]{
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.GroupMembership.RAW_CONTACT_ID};
Cursor c = context.getContentResolver().query(
groupURI,
projection,
ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID
+ "=" + groupID, null, null);
while (c.moveToNext()) {
String id = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.GroupMembership.RAW_CONTACT_ID));
contacts.add(getContactByID(id));
}
return contacts;
} else {
return null;
}
}
public ArrayList getContactListByGroup(字符串groupID){
if(groupID!=null){
ArrayList联系人=新建ArrayList();
Uri groupURI=ContactsContract.Data.CONTENT\u Uri;
字符串[]投影=新字符串[]{
Contacts contract.CommonDataTypes.Phone.DISPLAY\u NAME,
ContactsContract.CommonDataTypes.GroupMembership.RAW\u CONTACT\u ID};
游标c=context.getContentResolver().query(
groupURI,
投影,
ContactsContract.CommonDataTypes.GroupMembership.GROUP\u行\u ID
+“=”+groupID,null,null);
while(c.moveToNext()){
String id=c.getString(c.getColumnIndex(ContactsContract.CommonDataTypes.GroupMembership.RAW_CONTACT_id));
contacts.add(getContactByID(id));
}
返回联系人;
}否则{
返回null;
}
}
问题是,当我在手机上手动添加联系人时,它不会返回新联系人。但是如果我通过一个applyBatch
(代码端)添加它,该方法将按预期返回新联系人
有什么想法吗
谢谢,您的groupURI可能是错误的…groupURI实际上是contacts contract.Data.CONTENT\u URI,这是我找到的从特定组获取所有联系人的唯一方法。。。