【问题标题】:AccountManager. Account type for contacts客户经理。联系人的帐户类型
【发布时间】:2018-09-25 11:21:56
【问题描述】:

好的,所以我有“功能齐全”的帐户应用程序。除了 1 件事。

我的应用程序从 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.这是第一个问题,怎么了?

第二个不是问题,而是前一个的另一个证据。当我转到 System->Accounts-> 添加帐户时,我会看到我的帐户类型,我可以创建它。

但是当我在标准联系人应用程序中按添加联系人时,我看到“Google”、“Exchange”、“SIM”和更多但不是我的。 同样在标准应用程序中,当我选择“打开帐户设置”(自动同步所在的位置)时,我看到相同的帐户“Google”、“Exchange”、“SIM”等等,但不是我的。

所以第二个
2。什么帐户/内容提供者/或其他什么是错误的。我没有添加帐户中的哪些选项,因此帐户并非在所有地方都可见?

【问题讨论】:

    标签: android contactscontract accountmanager


    【解决方案1】:

    简而言之。未完全配置 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?

    https://android.googlesource.com/platform/packages/apps/Contacts/+/android-sdk-support_r11/tests/res/xml

    【讨论】:

      猜你喜欢
      • 2021-12-22
      • 2017-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      相关资源
      最近更新 更多