4

このチュートリアルを使用して、新しく作成したアカウントに外部連絡先を正常にインポートしています。アカウントはプログラムで再同期するように設定されていますが、同期された連絡先を表示できるようにするには、連絡先の重複が見つからない限り、実行する必要がありますContacts->Menu->Display options->Find account->Check "All Contacts"。私はすでに連絡先の同期を有​​効にして何も表示できない怒っているユーザーを恐れているので、質問は次のとおりです:プログラムでインポートされたアカウントの連絡先を含めるための表示オプションを設定することは可能ですか?では、ユーザーがアカウントの作成を選択した場合、インポートされた連絡先を表示するために他に何もする必要はありませんか?

4

1 に答える 1

7

私は同じ問題を抱えていて、アカウント作成を介して次のコードで解決しました:

mAccountManager.addAccountExplicitly(account, mPassword, null);
// Set contacts sync for this account.
ContentResolver.setSyncAutomatically(account,
ContactsContract.AUTHORITY, true);
ContentProviderClient client = getContentResolver().acquireContentProviderClient(ContactsContract.AUTHORITY_URI);
ContentValues cv = new ContentValues();
cv.put(Groups.ACCOUNT_NAME, account.name);
cv.put(Groups.ACCOUNT_TYPE, account.type);
cv.put(Settings.UNGROUPED_VISIBLE, true);
try {
client.insert(Settings.CONTENT_URI.buildUpon()                  .appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true")
.build(), cv);
} catch (RemoteException e) {...}
于 2011-07-01T08:41:55.353 に答える