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
이상하게 - 아니요. 데이터베이스가 프로그램 관점에서 올바른 것으로 보입니다. 의아해했다 ... –