我根据SDK中的示例编写了自己的SyncAdapter。它应该从外部源添加联系人,它在设备模拟器中工作得很好。但是当我在HTC Desire上运行它时,我无法在联系人中看到我的帐户 - >显示选项
此外,我在Desire上尝试了google的示例,但也无法在此列表中看到它们。有谁知道任何解决方案?
答案 0 :(得分:6)
我通过默认显示帐户来解决此问题。
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();
}
默认情况下该帐户可见后,您可以在通讯录的帐户列表中看到它
答案 1 :(得分:0)
要在标准 通讯录 应用的 “显示选项” 中显示您的帐户,您应该{{ 1}}在你的应用程序中,它是在SyncAdapter
中指定的元数据here。
此外,您应在syncadapter.xml
中指定使用android.permission.WRITE_SYNC_SETTINGS
权限。
AndroidManifest.xml
仅对联系人群组列表显示。