2012-07-24 2 views
3

사용자 정의 주파수로 선택한 계정을 동기화하는 안드로이드 응용 프로그램을 개발 중입니다.사용자 정의 주파수로 선택한 계정 동기화

AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE); 
Account[] list = manager.getAccounts(); 
Pattern emailPattern = Patterns.EMAIL_ADDRESS; 
for(i=0;i<AcntCount;i++) 
    for (Account account : list) 
     if (emailPattern.matcher(account.name).matches()) 
      if(account.name.matches(syncSettings.getString("Account"+i.toString(), null))) 
       //ContentResolver.addPeriodicSync(account, authority, extras, pollFrequency) 

addPeriodicSync()authorityextras 대신에 부여해야 값 무엇이다. 이를 위해 동기화 어댑터를 작성해야합니까?

+1

기관은 당신이 동기화하고자하는 컨텐트 프로 바이더의 권한이 될 것입니다. 컨택은 "com.android.contacts'입니다. 부가 항목'Bundle'은 특정 동기화 어댑터/동기화 작업에 대해 지정해야하는 매개 변수를 전달하는 데 사용됩니다. 이에 대한 힌트는'ContentResolver'에서'SYNC_EXTRA_xxx'라는 상수를 참조하십시오. – Jens

+0

감사합니다 Jens. 별도의 'addPeriodicSync()'를 작성해야 캘린더와 주소록을 동기화 할 수 있습니까? – JiTHiN

+0

그래, 내가 아는 한 "캐치 올"권한이 없다. 그러나 동기화 어댑터가 'ContentResolve # getIsSyncable (..)'을 호출하여 미리 권한을 동기화하도록 구성되어 있는지 확인해야합니다. – Jens

답변

0

예. SyncAdapter를 작성해야합니다. addPeriodicSync()는 특별히 ContentResolver가 타이머에서 SyncAdapter를 시작하도록 지시하는 데 사용됩니다.

어떤 권한이 필요합니까? 음, SyncAdapters는 (Account, Authority) 쌍에서 작동합니다.

계정에 특정 로그인이 지정되어 있습니다. 예를 들어 Gmail 주소가 두 개 이상인 경우 계정이 여러 개인 경우가 있습니다.

기관이 데이터의 종류를 알려줍니다. 예를 들어 Gmail의 acocunt를 사용하면 메일, 연락처, 캘린더, 금융 등을 동기화 할 수 있습니다. 따라서 데이터 유형 계정에 묶여있는 서비스.

함께 SyncAdapter에 제공되는 쌍 - 더 구체적으로는 (그들은 동기화 할 수 있습니다 당국을 정의 ) 시스템에 syncAdapters의 무리가 있고, 올바른 syncadapter 때 PeriodicSync 화재를 조회됩니다.

자신 만의 사용자 지정 서버와 동기화되는 자신의 응용 프로그램을 작성하는 경우 스키마를 읽고 저장하는 방법을 알고있는 SyncAdapter를 작성하면 권한을 정의하게됩니다. 이것들은 단지 문자열이며 java-classpath 스타일입니다. - "com.example.SyncAdapterSample"

작동하는 SyncAdapter를 얻는 데 필요한 모든 단계에 대해 Why does ContentResolver.requestSync not trigger a sync?을 읽으십시오. 확실히 당신이 가고 싶은 방식입니다. 설정을위한 많은 단계가 있지만 일단 프레임 워크가 존재하면 삶이 훨씬 쉬워집니다.

Now - 엑스트라. 이것은 에 대한 몇 가지 옵션입니다.주기 동기화가 수행됩니다. 처음에는 기본값을 사용하는 것이 좋습니다. 그런 다음 The documents을 발굴하십시오. 예를 들어, 여분의 SYNC_EXTRAS_EXPEDITED는 바로 동기화해야하는 우선 순위가 높은 업데이트임을 나타냅니다. 일반적으로 스케줄러는 요청을 일괄 처리 할 수 ​​있도록 1 ~ 2 분 정도 기다립니다 (배터리를 절약 할 수 있습니다. 집중 버스트에서만 가능). 일반적으로 SyncAdapter가 단순한 기준선보다 훨씬 복잡해질 때까지는 추가 항목에 대해 걱정할 필요가 없습니다.

관련 문제