我想從android中刪除聯繫人的詳細信息。 例如,一個聯繫人有一個電子郵件和一個電話號碼,假設我想刪除電話號碼。 假設我已經具有來自先前查詢的詳細信息的ID。如何刪除聯繫人詳細信息?
我的搜索只找到了與刪除整個聯繫人相關的主題,這已經爲我工作了。 這是關於只刪除一個細節,即從ContactsContract.Data表。
我的代碼的相關部分粘貼在下面,再次識別ID已知。 日誌消息報告1項已成功刪除,這是我的預期。 但是,當我切換到通訊錄應用程序,細節仍然存在。即使從頭開始重新啓動該應用程序。 所以一些東西似乎仍然沒有被正確更新。
感謝您的幫助
private void deleteDetail(ContactDetail detail) {
Uri detailsUri = ContactsContract.Data.CONTENT_URI;
String selection = ContactsContract.Data._ID + " = ?";
String[] selectionArgs = { String.valueOf(detail.getID()) };
int result = 0;
try {
result = mProvider.delete(detailsUri, selection, selectionArgs);
} catch (RemoteException e) {
e.printStackTrace();
}
Log.d(LOGTAG, "deleteDetail() - id=" + detail.getID() + ", deleted "+result+" entries");
}
我不認爲這是這種情況,原因有二: a)我在模擬器中運行,並且沒有使用其他聯繫人類型,只有我爲這些測試創建的聯繫人,大部分代碼爲 b)類似於您嘗試使用的建議使用以下代碼刪除: 更改選擇,以便刪除所有聯繫人的*全部*電話詳細信息 字符串選擇= ContactsContract.Data.MIMETYPE +「=?」; String [] selectionArgs = {ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE}; –
如果您在刪除聯繫人的電話號碼後查詢該聯繫人的電話號碼,您是否會再次找回被刪除的電話? – marmor
奇怪 - 沒有。從程序的角度來看,數據庫似乎是正確的。困惑... –