2011-04-28 100 views
4

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

回答

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) {...} 
相关问题