我正在制作android应用程序,我想从特定组中删除联系人不删除联系人只是从组中删除,我有组ID和联系人ID,任何人都可以告诉我查询要做到这一点, 我想实现类似删除contact_id = 1 from group_id = 2从android中的特定组中删除联系人
0
A
回答
1
联系人链接到ContactsContract.CommonDataKinds.GroupMembership记录组。您可以使用这样的事情,从组删除联系人:
private void deleteContactFromGroup(long contactId, long groupId)
{
ContentResolver cr = getContentResolver();
String where = ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID + "=" + groupId + " AND "
+ ContactsContract.CommonDataKinds.GroupMembership.RAW_CONTACT_ID + "=?" + " AND "
+ ContactsContract.CommonDataKinds.GroupMembership.MIMETYPE + "='"
+ ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE + "'";
for (Long id : getRawContactIdsForContact(contactId))
{
try
{
cr.delete(ContactsContract.Data.CONTENT_URI, where,
new String[] { String.valueOf(id) });
} catch (Exception e)
{
e.printStackTrace();
}
}
}
private HashSet<Long> getRawContactIdsForContact(long contactId)
{
HashSet<Long> ids = new HashSet<Long>();
Cursor cursor = getContentResolver().query(RawContacts.CONTENT_URI,
new String[]{RawContacts._ID},
RawContacts.CONTACT_ID + "=?",
new String[]{String.valueOf(contactId)}, null);
if (cursor != null && cursor.moveToFirst())
{
do
{
ids.add(cursor.getLong(0));
} while (cursor.moveToNext());
cursor.close();
}
return ids;
}
注意,当您执行删除,您应该指定RAW_CONTACT_ID而不是CONTACT_ID。所以你需要查询指定联系人的所有原始联系人ID。
另外您可能需要考虑帐户数据。在这种情况下,改变查询联络人ID,以类似的东西:
Uri rawContactUri = RawContacts.CONTENT_URI.buildUpon()
.appendQueryParameter(RawContacts.ACCOUNT_NAME, accountName)
.appendQueryParameter(RawContacts.ACCOUNT_TYPE, accountType).build();
Cursor cursor = getContentResolver().query(rawContactUri,
new String[] { RawContacts._ID }, RawContacts.CONTACT_ID + "=?",
new String[] { String.valueOf(contactId) }, null);
0
public static Uri addContactToGroup(String rawContactId,String groupId)
{
try
{
ContentValues values = new ContentValues();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(GroupMembership.GROUP_ROW_ID, groupId);
values.put(Data.MIMETYPE, GroupMembership.CONTENT_ITEM_TYPE);
return getContentResolver.insert(Data.CONTENT_URI, values);
}
catch (Exception e)
{}
return Uri.EMPTY;
}
// ------------------------- ----------
public static int removeContactFromGroup(String contactId,String groupId)
{
try
{
String where = Data.CONTACT_ID + " = ? AND " + Data.MIMETYPE + " = ? AND " + GroupMembership.GROUP_ROW_ID + " = ?";
String[] args = {contactId, GroupMembership.CONTENT_ITEM_TYPE, groupId};
return getContentResolver.delete(Data.CONTENT_URI, where, args);
}
catch (Exception e)
{}
return 0;
}
相关问题
- 1. 在android中删除特定联系人
- 2. 从Android联系人中删除联系人
- 3. 从常用联系人的特定列表中删除联系人API
- 4. 删除组中的所有联系人
- 5. Android,删除联系人
- 6. 删除iOS联系人组
- 7. 如何从联系人列表中删除联系人号码?
- 8. 将联系人添加到特定组中? Google联系人API
- 9. 如何从Office365中删除联系人
- 10. 如何删除android中最近调用列表中的特定联系人?
- 11. 如何删除联系人中的特定字段?
- 12. 删除联系人组中的人(在Mac地址簿中)
- 13. 删除Android联系人的单个联系人
- 14. 更新联系人删除后的联系人组
- 15. 如何以编程方式在android中删除联系人组?
- 16. 如何从Android手机中删除Gmail联系人?
- 17. 如何从数组中删除Facebook联系人? Ios AddressBook
- 18. Android的SDK-获得来自联系人列表中特定联系人的
- 19. 如何删除联系人(行)从联系人(表)
- 20. Android删除模拟联系人编号
- 21. Android联系人:更新,删除,插入
- 22. 从联系人中删除自定义帐户ACCOUNT_TYPE
- 23. 以编程方式从联系人中删除联系人图片
- 24. 在Outlook中取消删除联系人
- 25. 如何从android中的联系人获取联系人号码?
- 26. 从windows phone 7.1删除联系人c#
- 27. 优化联系人删除
- 28. 如何删除联系人?
- 29. 无法删除Gmail联系人组的Android
- 30. 通过组的编号在特定组中添加联系人