好,所以我有“完全”功能的帐户应用程序。除了一件事。
我的应用程序从SQlite DB中获取数据并通过ContactContract创建具有帐户名和类型的帐户,如
contactsOperations.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, static_variables.ACCOUNT_TYPE)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, static_variables.ACCOUNT_NAME)
.withYieldAllowed(true)
.build());
在某些电话上,标准联系人应用程序中的几乎所有(和模拟器)我都看到已创建帐户,并且帐户位置已按预期设置为static_variables.ACCOUNT_NAME
。
但是在某些设备上,该位置是“未知”(已创建并存在该帐户),并且在某些联系人上根本不可见,但存在。
何时(在任何电话上)我用
进行检查Cursor cursor_raw = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null, null);
我最后看到的那些联系人的帐户名和类型设置正确。
1。这是第一个问题,怎么了?
第二个不是问题,而是另一个证据。当我进入“系统”->“帐户”->“添加帐户”时,我在那里看到我的帐户类型,可以创建它。
但是当我在标准联系人应用程序中并按添加联系人时,我看到“ Google”,“ Exchange”,“ SIM”,还有更多,但不是我的。 同样在standartd应用程序中,当我选择“打开帐户设置”(位于自动同步所在的位置)时,会看到相同的帐户“ Google”,“ Exchange”,“ SIM”,还有更多但不是我的。
第二次
2。什么Account / ContentProvider /或其他错误。我没有添加帐户中的哪些选项,因此并非在所有地方都可见该帐户?
答案 0 :(得分:0)
简而言之。未完全配置SyncAdapter。如果您不想更改我们的contentAuthority,而不仅仅是创建一个具有不同contentAuthority的同步适配器。
用于解决问题的链接。
Display custom sync adapter as an option when adding contacts
How to add my application's account to the Android Contacts application's "Accounts" list?