Учетная запись не отображается в настройках приложения контактов на устройстве от HTC - PullRequest
7 голосов
/ 05 декабря 2010

Я пишу свой собственный SyncAdapter на основе примера в SDK. Он должен добавить контакты из внешнего источника, и он прекрасно работает в эмуляторе устройства. Но когда я все-таки запускаю его в HTC Desire, я не вижу свою учетную запись в Контактах-> Параметры отображения

Также я попробовал пример Google на Desire и не смог увидеть их в этом списке. Кто-нибудь знает какое-нибудь решение?

Ответы [ 2 ]

6 голосов
/ 06 декабря 2010

Я решаю эту проблему, делая мою учетную запись видимой по умолчанию.

ContentProviderClient client = getContentResolver().acquireContentProviderClient(ContactsContract.AUTHORITY_URI);
ContentValues values = new ContentValues();
values.put(ContactsContract.Settings.ACCOUNT_NAME, account.name);
values.put(ContactsContract.Settings.ACCOUNT_TYPE, account.type);
values.put(ContactsContract.Settings.UNGROUPED_VISIBLE, true);
try
{
  client.insert(Settings.CONTENT_URI.buildUpon().appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true").build(), values);
}
catch (RemoteException e)
{
  e.printStackTrace();
}

после этого аккаунт по умолчанию виден, и вы можете увидеть его в списке аккаунтов в контактах

0 голосов
/ 11 июля 2013

Чтобы сделать вашу учетную запись видимой в «Параметры отображения» стандартного Контакты приложения, в вашем приложении должно быть SyncAdapter и это метаданные, указанные в syncadapter.xml, как описано здесь .

Кроме того, вы должны указать использование разрешения android.permission.WRITE_SYNC_SETTINGS в AndroidManifest.xml.

UNGROUPED_VISIBLE сделать его видимым только для списка групп контактов.

...