2010-07-23 56 views

回答

4

用戶不控制是否選擇帳戶進行同步 - 而是選擇(acount,contentAuthority)對。例如,可以檢查您的Gmail帳戶以同步聯繫人,但不能檢查日曆事件。

這裏是檢查首次輸入的「com.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); 

此代碼如果賬戶[]的大小爲0(沒有賬戶註冊),這顯然會失敗,並且在多個賬戶存在時是沒有意義的。你需要爲賬戶做一些合理的選擇。還有其他一些方法可以獲得一個帳戶。

只是因爲它被選中並不意味着它保證同步。還有一些額外的條件涉及 - 全局同步設置(開/關),網絡可用性,以及是否以及如何定期重新同步。 ContentResolver也是通往所有這些查詢的入口。