【问题标题】:How to add my application's account to the Android Contacts application's "Accounts" list?如何将我的应用程序帐户添加到 Android 联系人应用程序的“帐户”列表?
【发布时间】:2015-09-10 16:11:46
【问题描述】:

我编写了一个 SyncAdapter 来将我的应用程序的联系人列表添加到 Android Contacts Provider。为此,我创建了自己的 AccountAuthenticator、一个提供对 Authenticator 访问的服务、一个 SyncAdapter 和一个用于 SyncAdapter 的服务。我可以看到我的帐户出现在 Android 帐户列表中(在主设置页面下),并且我可以看到我的应用程序中的所有联系人都出现在 Android 的联系人(或人)应用程序中。但是,当我点击“人脉”应用程序中的“帐户”按钮时,我的应用程序帐户不会出现。当我编辑之前同步到 Android 联系人提供程序的任何个人帐户时(按照此处的建议),该联系人被标记为“仅限电话,未同步的联系人”。我知道我一定做错了什么,但到目前为止我还无法确定我的错误是什么。我如何告诉 Android 联系人 X 属于帐户 Y?我认为在创建时将帐户名称和帐户类型添加到原始联系人就足够了,但这似乎还不够。我错过了什么?

【问题讨论】:

  • 在这里发布了类似的问题,答案似乎让我更接近:stackoverflow.com/questions/21011569/…
  • 至少部分答案似乎是我在我的 syncadapter.xml 和对 ContentResolver 的调用中使用了我自己的 ContentProvider 权限(例如 com.example.myapp.contentprovider)添加帐户,将其设置为可同步等。相反,我应该使用“com.android.contacts”。这让我可以在联系人应用程序中查看我的帐户,但我同步的联系人仍被标记为仅限手机的未同步联系人,因此显然我还没有解决我的所有错误。

标签: android


【解决方案1】:

过去几天一直在处理这个问题,我有一个答案:

我假设您的同步服务下的 AndroidManifest.xml 中有如下内容:

<meta-data android:name="android.provider.CONTACTS_STRUCTURE"
    android:resource="@xml/contacts"/>

然后在此处引用的contacts.xml文件中:

<ContactsAccountType
    xmlns:android="http://schemas.android.com/apk/res/android">
    <EditSchema>
    </EditSchema>
</ContactsAccountType>

如果 EditSchema 不正确,它将切换到“仅限电话”联系人。

可接受的基础是:

<!-- XML for must-have checks.  Base definition, which is valid. -->
<ContactsAccountType
    xmlns:android="http://schemas.android.com/apk/res/android"
    >
    <EditSchema>
        <DataKind kind="name"
            maxOccurs="1"
            supportsDisplayName="true"
            supportsPrefix="true"
            supportsMiddleName="true"
            supportsSuffix="true"
            supportsPhoneticFamilyName="true"
            supportsPhoneticMiddleName="true"
            supportsPhoneticGivenName="true"
            >
        </DataKind>
        <DataKind kind="photo" maxOccurs="1" />
    </EditSchema>
</ContactsAccountType>

我最终找到了很多例子 - https://android.googlesource.com/platform/packages/apps/Contacts/+/android-sdk-support_r11/tests/res/xml

【讨论】:

  • 您好,我正在尝试使用诸如 maxOccurs 之类的编辑模式,电子邮件应该是 3 等,但我的设备似乎不支持它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-11
  • 2011-06-19
  • 2016-12-22
  • 1970-01-01
  • 2016-01-15
相关资源
最近更新 更多