我正在製作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. 通過組的編號在特定組中添加聯繫人