2010-07-23 3 views

답변

4

사용자가 계정을 동기화하도록 선택하지 않고 - (acount, contentAuthority) 쌍을 선택합니다. 예를 들어 캘린더 일정은 아니지만 연락처를 동기화하도록 gmail 계정을 확인할 수 있습니다.

처음 입력 한 'com.google-type'계정이 Google 연락처와 동기화되는지 확인하는 코드입니다. ("com.google"는 유형 계정의 것을 하지 사용자 이름의 실제 내용을 참고. 당신은 애플 리케이션이 거기에 자신의 도메인 이름으로 계정 구글이있을 수 있습니다)

import android.provider.ContactsContract; 

AccountManager am = AccountManager.get(this); 
Account[] accounts = am.getAccountsByType("com.google");   
boolean syncEnabled = ContentResolver.getSyncAutomatically(accounts[0], ContactsContract.AUTHORITY); 

이 코드 accounts []가 크기 0 (계정이 등록되지 않음)이고 여러 계정이있는 경우 의미가없는 경우 분명히 실패합니다. 계정에 대해 합당한 선택을해야합니다. 계정을 보유 할 수있는 다른 방법도 있습니다.

그냥 확인했기 때문에 동기화가 보장된다는 의미는 아닙니다. 추가 동기화 조건 (글로벌 동기화 설정 (켜기/끄기), 네트워크 가용성, 주기적 재 동기화 일정 및 실행 여부 등)이 있습니다. ContentResolver는 이러한 모든 쿼리에 대한 게이트웨이이기도합니다.

관련 문제