Android: Enable imported account contacts programm

2020-02-12 09:32发布

I'm successfully importing external contacts into the newly created account using this tutorial. The account is setup to re-sync programmatically and yet, to be able to see the synced contact, - unless the contact dupe is found - I need to do Contacts->Menu->Display options->Find account->Check "All Contacts". I'm already dreading angry users enabling contact sync and not being able to see anything so the question is: is it possible to set display option for including imported account contacts programmatically? So when user opt for account creation he doesn't need to do anything else to see imported contacts?

1条回答
We Are One
2楼-- · 2020-02-12 09:50

i had the same problem and solved it with following code via account creation:

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) {...}
查看更多
登录 后发表回答