Android:以编程方式启用导入的帐户联系人

时间:2011-04-28 22:02:45

标签: android account-management

我使用this tutorial成功将外部联系人导入新创建的帐户。该帐户设置为以编程方式重新同步,但是,为了能够看到同步的联系人, - 除非找到联系人欺骗 - 我需要Contacts->Menu->Display options->Find account->Check "All Contacts"。我已经害怕愤怒的用户启用联系人同步而无法看到任何内容所以问题是:是否可以设置显示选项以包含导入的帐户联系人?因此,当用户选择创建帐户时,他不需要做任何其他事情来查看导入的联系人吗?

1 个答案:

答案 0 :(得分: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) {...}