2010-06-17 2 views
2

를 사용하여 전체 연락처를 삭제합니다. 나는 그들을 보여줄 수 있지만 업데이 트하지만 내가 어떤 것을 삭제하고 싶을 때, 그것은 완전히 삭제되지 않는다. 연락처에서 응용 프로그램은 데이터없이 (알 수 없음)으로 표시됩니다. 내 예가 여기에 있습니다.않으면 내가 안드로이드 연락처와 함께 일하고있다 ContentProviderOperation

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 
ops.add(ContentProviderOperation.newDelete(Data.CONTENT_URI) 
.withSelection(Data.CONTACT_ID + "=?", new String[]{selectedid}) 
.build()); 
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 

연락처를 완전히 삭제하려면 어떻게해야합니까? 이들 코드가 테이블 ContactsContract.Data에서 정보를 삭제하는 것이 보이지만 테이블 ContactsContract.Contacts에 관련된 요소를 삭제하지 않거나 ContactsContract.RawContacts.how 내가 완전히 연락처를 삭제하기 위해 무엇을 할 수 있는가?

============================================== ==============================

또한, 내가되지 않는 방법을 시도했다. 그것은 복용량 작업,하지만 그렇게하고 싶지 않아요. 다음은 샘플 코드입니다 :

ContentResolver contentResolver = m_cContent.getContentResolver(); 
contentResolver.delete(People.CONTENT_URI, People.NAME + "=?", new String[] { SelectedName }); 

내가

ContentResolver contentResolver = m_cContent.getContentResolver(); 
contentResolver.delete(ContactsContract.Contacts, ContactsContract.Contacts._ID + "=?", new String[] { Selectedid }); 

이 코드를 수정하는 경우는 효과가 없습니다.

단지 이름 대신 ID로 연락처를 삭제 할 수있는 일을 의미 하는가? 연락처를 삭제하려면 어떻게해야합니까?

감사합니다, Enchor

+0

동기화 프로세스를 실행해야 Google 연락처로 업데이트되므로 영구적으로 제거됩니다. 삭제 된 플래그를 확인하십시오. – Pentium10

+0

"동기화 프로세스를 실행해야합니다." 나는 그렇게하는 법을 모른다. 동기화 프로세스를 실행하는 방법을 알려주시겠습니까? 어떤 문서를 읽거나 제공 할 수 있는지 알려주십시오. 고마워요. – Enchor

+0

@Enchor 문제를 해결 했습니까? 나는 지금도 고투하고있다. –

답변

0

당신은 Data 테이블에서 데이터 행을 삭제하여 접촉을 삭제하려고합니다. 그럴 수 없습니다. A 접점 여러 원시 연락처로 구성되어

각 원시 접촉은 Data 테이블에 저장된 데이터를 가지고있다. 연락처를 삭제할 때 모든 원시 연락처도 해당 데이터와 함께 삭제됩니다.

는이 작업을 수행합니다 : 작업이 성공했을 경우 1이됩니다 삭제

long contactId = 12345; 
Uri contactUri = Uri.withAppendedPath(Contacts.CONTENT_URI, String.valueOf(contactId)); 
int deleted = getContentResolver().delete(contactUri, null, null); 

.

관련 문제