8

我创建了一个自定义帐户类型,并且可以在 android ContactsContract ContentProvider 中成功创建该类型的联系人。但是,在默认联系人应用程序中编辑联系人时,我很难弄清楚如何让我的自定义帐户标签和图标显示出来。

编辑自定义联系人类型时,标签应类似于“联系人”,您的应用图标位于右侧。相反,编辑我类型的联系人总是显示“仅限电话,未同步的联系人”标签。有关示例,请参见下面的第一个屏幕截图。

奇怪的是它确实提取了我的帐户名称,您可以在错误标签下方的屏幕截图中看到它(它以“+1415”开头)。

而且我已经成功地在帐户下的设置应用程序中显示了我的应用程序的标签和图标,所以我知道我做对了。请参阅下面的第二个屏幕截图以证明这一点(帐户标签是“Bolt”)。

在 Android 联系人应用程序中编辑自定义联系人 具有自定义帐户标签和图标的设置应用程序

我有以下authenticator.xml:

<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
    android:accountType="@string/account_type"
    android:label="@string/app_name"
    android:icon="@drawable/app_icon"
    android:smallIcon="@drawable/app_icon" />

这是我的syncadapter.xml:

<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
    android:contentAuthority="@string/contacts_content_authority"
    android:accountType="@string/account_type"
    android:userVisible="true"
    android:allowParallelSyncs="false"
    android:isAlwaysSyncable="true"
    android:supportsUploading="false" />

谁能指出我在哪里出错了?我可以根据需要提供更多信息。我尝试使用 CLIENT_IS_SYNCADAPTER 参数从我的 SyncAdapter 中创建联系人,但这并没有改变任何内容。我也尝试了其他一些事情,但还没有任何效果。

4

1 回答 1

4

我终于弄清楚了问题所在。

在我的sync-adapter元素中,该android:contentAuthority属性被设置为我自己的联系人的自定义内容权限ContentProvider,这在技术上是我用来查询和写入联系人数据的。但事实证明,您的联系人必须显示在默认联系人应用程序中,此属性必须设置为"com.android.contacts"

于 2014-01-13T03:05:53.460 回答