2011-03-16 3 views
2

ContactsContract API를 사용하여 연락처에 메모를 추가하려고합니다. 다양한 연락처 ID 및 원시 연락처 ID를 완전히 이해하고 있는지 잘 모르겠습니다. 내 문제는 논의 된 내용과 꽤 비슷합니다. here.Android : 기존 연락처에 메모 추가

내가 원하는 것 : 1. 특정 연락처를 찾으십시오. 발견했을 때 2. 나는 다음과 같은 방법으로 그 일을하고있어 특정 음

를 삽입 :

Cursor contacts = getContentResolver().query(ContactsContract.Data.CONTENT_URI, null, null, null, null); 

while(contacts.moveToNext()){ 

     Log.d("TC", "Found : " + name); 

     int rid = contacts.getColumnIndex(ContactsContract.Data.RAW_CONTACT_ID); 
     int rawContactID = contacts.getInt(rid); 

     int nameIdx = contacts.getColumnIndex(ContactsContract.Data.DISPLAY_NAME); 
     String name = contacts.getString(nameIdx); 

     if <Some condition>{ 
      ContentValues contentValues = new ContentValues(); 
      contentValues.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactID); 
      contentValues.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE); 
      contentValues.put(ContactsContract.CommonDataKinds.Note.NOTE, "Bazzinga !"); 
      int stat = getContentResolver().update(ContactsContract.Contacts.CONTENT_URI, contentValues, null , null); 
      Log.d("TC", "Update returned : " + stat); 
     } 

} 

내가 오류를 얻을 수 없습니다. 그러나 접촉은 업데이트되지 않습니다 :(데이터 테이블이 같은 raw_contact_id 여러 항목이있을 수 있기 때문에

답변

2

.는이

getContentResolver().update(...)
getContentResolver().insert(Data.CONTENT_URI, contentValues);

과 또한 당신이 Data.CONTENT_URI 쿼리의 경우 문이 있어야 교체합니다. "Data.MIMETYPE = StructuredName.CONTENT_ITEM_TYPE"을 사용할 수 있습니다.

+0

설명서를 검토 한 결과, RawContact의 데이터 테이블에 행을 삽입해야합니다. 이것을 시도합니다! – advantej

+0

Worked! Thanks 카란 – advantej