2012-10-09 8 views
8

GoogleのAPIを使用してAndroidのネイティブ連絡先をGoogleアカウントに同期する方法。 便利なリンクをいくつか用意してください。Googleの連絡先APIを使用してAndroidのGmailに電話連絡先をプログラムで同期する方法

+0

http://immigrationroad.com/blog/how-to-sync-android-phone-contacts-with-google-gmail:その上記のものと類似していますが、デフォルトの設定アプリは、このようなコードのものを使用しています/ –

+0

私はプログラムで同期する必要があります – AndroidRaji

+0

ok。私はあなたを与えるでしょう –

答えて

9

自動的に同期が行われます。プログラムで連絡先を追加または削除できます。しかし、同期設定は、ユーザーが電話設定で「同期オプション」を有効にしている場合に限り、OSによって自動的に処理されます。また、良い答えである可能性があり、次の

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); 
      } 
     } 
    } 
} 
関連する問題