2012-05-15 5 views
0

연락처 성 및 프로그래밍 방식으로 프로그래밍 방식으로 수정하려고합니다. 나는이 일을하기 위해 사용했습니다 코드 조각은 다음 하나입니다프로그래밍 방식으로 네이티브 연락처 수정

mSmartphoneContactKey가에 앉아 열

ContactsContract.Contacts._ID 

에 포함 된 데이터로 채워집니다

operations.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI) 
    .withSelection(RawContacts._ID + "=?", 
    new String[] { String.valueOf(mSmartphoneContactKey) }) 
    .withValue(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, 
    mContactName.getEditableText().toString()) 
     .withValue(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, 
     mContactLastName.getEditableText().toString())       
     .build()); 

콘텐츠 공급자를 사용하여 연락처를 읽을 때 내 프로젝션 배열.

일부 연락처의 경우 이름과 성이 수정되지 않고 전화 유형이 대신 수정됩니다. 사실 그 원인에 대한 단서가 없습니다. 모든 조언을 주시면 감사하겠습니다.


더 자세히 읽은 문서는 데이터 테이블입니다. 나는 여전히

 operations.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI) 
       .withSelection(Data._ID + " = ? AND " + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE + "'", 
         new String[] { String.valueOf(mSmartphoneContactId) }) 
         .withValue(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, mContactName.getEditableText().toString()) 
         .withValue(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, mContactLastName.getEditableText().toString())        
         .build()); 

를 작동하지 ... 아래의 코드를 수정 한 저를 도와주세요!

+0

연락처 id와 함께 기본 연락처를 가져올 수 있습니다.하지만 동일한 연락처를 편집하고 연락처 ID를 사용하여 같은 연락처를 삭제할 때 문제가 있습니다. 어떻게 해결할 수 있을까요? – AndroidRaji

+0

여기서 "mSmartphoneContactId"는 Data.ID 또는 RawContacts._ID를 나타냅니다. 제발 말해주세요 – AndroidRaji

+0

연락처를 네이티브 연락처에 추가하려면 코드를 공유하고 해당 ID를 얻고 ID를 사용하여 연락처를 편집하고 삭제하는 방법을 공유하십시오. – AndroidRaji

답변

1

확인 해결! 잘못된 ID가 전달되었습니다. DATA 테이블의 데이터를 따라 ID를 검색해야합니다.

관련 문제