我根据 SDK 中的示例编写了自己的 SyncAdapter。它应该从外部来源添加联系人,并且在设备模拟器中完美运行。但是当我在 HTC Desire 上运行它时,我在联系人->显示选项中看不到我的帐户
此外,我在 Desire 上尝试了 google 的示例,但也无法在此列表中看到它们。有谁知道任何解决方案?
我根据 SDK 中的示例编写了自己的 SyncAdapter。它应该从外部来源添加联系人,并且在设备模拟器中完美运行。但是当我在 HTC Desire 上运行它时,我在联系人->显示选项中看不到我的帐户
此外,我在 Desire 上尝试了 google 的示例,但也无法在此列表中看到它们。有谁知道任何解决方案?
我通过使我的帐户默认可见来解决它。
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();
}
在该帐户默认可见之后,您可以在联系人的帐户列表中看到它
要使您的帐户在标准联系人应用程序的“显示选项”中可见,您应该在您的应用程序中拥有它,它是在此处描述的元数据。SyncAdapter
syncadapter.xml
此外,您应该android.permission.WRITE_SYNC_SETTINGS
在AndroidManifest.xml
.
UNGROUPED_VISIBLE
使其仅对联系人组列表可见。