2012-10-09 77 views

回答

9

同步自動發生。您可以編程方式添加或刪除聯繫人。但是,當且僅當用戶在電話設置中啓用了「同步共享」選項時,自動處理同步。

可以,但是運行同步程序,如果同步是通過使用像這樣的用戶啓用,可以調用同步過程:

private void requestSync() 
{ 
    AccountManager am = AccountManager.get(this); 
    Account[] accounts = am.getAccounts(); 

    for (Account account : accounts) 
    { 
     int isSyncable = ContentResolver.getIsSyncable(account, ContactsContract.AUTHORITY); 

     if (isSyncable > 0) 
     { 
      Bundle extras = new Bundle(); 
      extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); 
      ContentResolver.requestSync(accounts[0], ContactsContract.AUTHORITY, extras); 
     } 
    } 
} 
+0

您還需要將''添加到清單 – maxivis

0

下也可能是一個很好的答案。它類似於上述之一,但默認設置的應用程序使用的代碼是這樣的:

private void requestSyncForAccounts() { 
    SyncAdapterType[] syncAdapters = ContentResolver.getSyncAdapterTypes(); 
    Bundle extras = new Bundle(); 
    extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); 
    Account[] accounts = AccountManager.get(PeopleActivity.this).getAccounts(); 
    for (Account account : accounts) { 
     for (int j = 0; j < syncAdapters.length; j++) { 
      SyncAdapterType sa = syncAdapters[j]; 
      if (ContentResolver.getSyncAutomatically(account, sa.authority)) { 
       ContentResolver.requestSync(account, sa.authority, extras); 
      } 
     } 
    } 
}