2012-09-06 4 views
9

안드로이드는 모든 연락처에 고유 한 상수 ID를 할당합니까?
그렇지 않은 경우 해당 정보를 할당 할 수있는 방법이 있습니까? 이 ID를 Google 연락처에 동기화 할 수 있습니까?고유 연락처 ID

감사합니다.

답변

4

안드로이드 연락처에는 두 가지 유형의 연락처 ID가 있습니다.

한 다른 ANS는

이 가이드를 참조 RAW_CONTACT_ID인 CONTACT_ID이다. ANDROID CONTACTS

희망이 도움이 될 것입니다.

+0

하지만 난 내 구글 계정에 연결되어있는 다른 장치에 동기화하면 이러한 ID가 일정하게 될 것이라고 생각하지 않습니다. 사용자 정의 된 데이터를 Google 연락처와 동기화 할 수 있습니까? – user1651653

+0

물론 아닙니다. 그것은 안드로이드 장치 내의 유일한 ID입니다. –

+0

이것은 안드로이드가 모든 연락처에 고유 한 상수 ID를 할당합니까? 예 혹은 아니오? – Simon

4

동기화 된 Google 주소록 만 고유 ID를 검색 할 수 있습니다. 다른 경우에는 Android에서와 같이 다른 ID를 얻을 수 있습니다. 사용자가 연락처를 다시 설정하거나 전화 번호부로 다시 가져올 때마다 모든 연락처의 raw_id가 변경됩니다.

기기와 관계없이 접촉 ID에 일관성을 유지하려면 플랫폼에 동기화 된 Google 주소록 만 사용하거나 코드 주위에 나만의 코드를 작성하여 예를 들어 고유 식별자를 생성합니다. 동기화 어댑터가 새로운 원료를 만들 때 상대의 수의 해시를 얻을, 거의 유일하게이

을 생성하는 계정이 원시의 접촉을 식별

0
ContactsContract.RawContacts SOURCE_ID 

문자열 값을 변경하지 않는 등의 이름 이 열은 이 원시 연락처의 서버 고유 ID로 설정되어야합니다. Android 응용 프로그램에서 새 원시 연락처를 만들 때 응용 프로그램에서 이 열을 비워 둡니다. 이렇게하면 동기화 어댑터에 서버에 새 원시 연락처를 만들어 SOURCE_ID에 대한 값을 가져와야한다고 알립니다. 에서 특히 소스 ID는 각 계정 유형마다 고유해야하며 은 동기화에서 안정적이어야합니다.

고유 : 계정의 원시 연락처마다 소스 ID가 있어야합니다. 이것을 시행하지 않으면 연락처 응용 프로그램에 문제가 발생할 것입니다. 동일한 계정 유형 에 대한 원시 연락처 두 개가 동일한 소스 ID를 가질 수 있습니다. 예를 들어 [email protected] 계정의 원시 연락처 인 "Thomas Higginson"은 계정 [email protected]의 원시 연락처 인 "Thomas Higginson"과 동일한 출처의 ID를 가지고 있습니다 (예 : ). 안정적 : 소스 ID는 원시 연락처에 대한 온라인 서비스 데이터 인 의 영구적 인 부분입니다. 예를 들어 사용자가 Apps 설정에서 주소록 저장소를 지우고 다시 동기화하는 경우 복원 된 원시 주소록의 소스 ID는 이전과 동일해야합니다. 을 적용하지 않으면 바로 가기가 작동하지 않습니다.

다음은 공식 문서입니다 : Contacts Provider