2012-01-30 4 views
0

인 경우 Android에서 원시 연락처 업데이트 Android에서 연락처 선택기를 사용하여 하나의 연락처를 선택하면 CONTACT_ID 필드 만 표시됩니다. 그러나 일부 연락처 정보를 업데이트하려면 원시 연락처 데이터를 편집해야합니다. 이렇게하려면 RAW_CONTACT_ID를 알아야합니다. 지금까지 올바른가?연락처 ID가

CONTACT_ID 만있을 때 데이터를 업데이트하는 데 필요한 RAW_CONTACT_ID를 어떻게 얻습니까? 이렇게 ...?

String[] projection = new String[] { ContactsContract.RawContacts._ID }; 
String where = ContactsContract.RawContacts.CONTACT_ID + " = ?"; 
String[] selection = new String[] { String.valueOf(contactId) }; 
Cursor c = getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI, projection, where, selection, null); 

하지만 모든 RAW_CONTACT_IDs, 오른쪽 집어 사용자에 속하는 얻을 것이다이 방법은? 그럼 내가 업데이트해야 할 원시 연락처는 어느 것입니까?

"너에게 달렸어"라고 말하고 싶다면 나에게 모두 똑같아. 데이터를 저장할 수있는 모든 원시 연락처에 내 데이터 에 넣기 만하면됩니다.

답변

0

완벽한 답변이 없습니다. 그러나 가장 쉽고, 아마도 가장 올바른 것은 Google 계정을 사용하는 것입니다.

ACCOUNT_TYPE에서 선택할 수 있으며 Google 계정의 경우 "com.google"입니다. 전화에 많은 Google 계정이있을 수 있기 때문에 첫 번째 계정 (또는 대부분의 주소록이있는 계정) 만 선택하면됩니다.

+0

감사합니다. 항상 Google 계정이 있습니까? 또는 쿼리에서 Google 원시 연락처를 찾지 못할 수 있습니까? 항상 하나가 아닌 것 같네요, 그렇죠? – caw

+0

항상 하나가 될 수는 없습니다. 그러나 개발중인 앱이 안드로이드 마켓에서 다운로드되었다고 가정하면, 그 앱이있을 것이라는 확신을 가질 수 있습니다. (시장을 이용하려면 로그인해야 함) – lordl

+0

하지만 Facebook과 연락처를 동기화 할 때 (예 : Facebook 연락처를 병합 할 다른 원시 연락처가없는 경우) Facebook의 원시 계정으로 만 이루어진 연락처가있을 수 있습니다 Google 원시 연락처가없는 반면 이거 아닌가요? – caw

0

모든 원시 주소록을 살펴보고 이 가장 좋은 주소 인을 찾아야합니다. Facebook과 같은 읽기 전용 연락처 (RAW_CONTACT_IS_READ_ONLY)를 필터링 할 수 있습니다. 아마도 업데이트 할 필드가 이미 포함 된 원시 연락처를 찾고 싶을 것입니다. 그러한 계정이 없으면 Google 계정으로 이동하고 그렇지 않으면 쓰기 가능한 계정으로 이동하십시오. 상황에 따라 모든 쓰기 가능 파일에 쓰기를 고려하십시오.