안드로이드 개발 질문/답변
(글 수 45,052)
정말 오랜시간을 삽질했으나 역시 나 실패했습니다.
질문도 올렸는데 답변밖에 기대할수 없어 다시 질문드립니다.
연락처 선택화면을 띄우고
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
startActivityForResult(contactPickerIntent, 1);
ID를 받아왔습니다.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if((requestCode == 1) && (resultCode == RESULT_OK))
{
Uri contactData = data.getData();
//ContactsContract.Data.
Cursor c = managedQuery(RawContacts.CONTENT_URI, new String[] {RawContacts._ID, RawContacts.CONTACT_ID, RawContacts.ACCOUNT_NAME}, RawContacts.CONTACT_ID + " = " + contactData.getLastPathSegment(), null, null);
if(c.moveToFirst())
{
existContactRawID = c.getLong(1);
existPhoneUri = contactData;
updateContactEntry();
}
}
}
이름을 업데이트 합니다. 문제는 이름은 바뀌는데 나머지 데이터가 날라가 버립니다. ㅠㅠ.
values.clear();
//values.put(ContactsContract.Data.RAW_CONTACT_ID, existContactRawID);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name);
this.getContentResolver().update(ContactsContract.Data.CONTENT_URI, values, ContactsContract.Data.CONTACT_ID+"="+existContactRawID,
null);
질문도 올렸는데 답변밖에 기대할수 없어 다시 질문드립니다.
연락처 선택화면을 띄우고
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
startActivityForResult(contactPickerIntent, 1);
ID를 받아왔습니다.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if((requestCode == 1) && (resultCode == RESULT_OK))
{
Uri contactData = data.getData();
//ContactsContract.Data.
Cursor c = managedQuery(RawContacts.CONTENT_URI, new String[] {RawContacts._ID, RawContacts.CONTACT_ID, RawContacts.ACCOUNT_NAME}, RawContacts.CONTACT_ID + " = " + contactData.getLastPathSegment(), null, null);
if(c.moveToFirst())
{
existContactRawID = c.getLong(1);
existPhoneUri = contactData;
updateContactEntry();
}
}
}
이름을 업데이트 합니다. 문제는 이름은 바뀌는데 나머지 데이터가 날라가 버립니다. ㅠㅠ.
values.clear();
//values.put(ContactsContract.Data.RAW_CONTACT_ID, existContactRawID);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name);
this.getContentResolver().update(ContactsContract.Data.CONTENT_URI, values, ContactsContract.Data.CONTACT_ID+"="+existContactRawID,
null);




코드상으론 확인 불가능하고 이 기회에 디버깅에 대해 학습해 보시기를...
이클립스 디버깅을 활용하면 모든 변수의 값확인이 가능합니다.