如何让我的自定义帐户类型显示在Android联系人应用程序中?

时间:2014-01-09 04:25:11

标签: android android-contacts android-syncadapter android-account

我已经创建了自定义帐户类型,我可以在android ContactsContract ContentProvider中成功创建该类型的联系人。但是,在编辑默认联系人应用中的联系人时,我很难弄清楚如何获取自定义帐户标签和图标。

编辑自定义联系人类型时,标签应类似于"通过右侧的应用程序图标联系"相反,编辑我的类型的联系人始终显示标签为"仅限电话,未同步的联系人"。请参阅下面的第一个屏幕截图以获取示例。

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

我已经在帐户下的设置应用中成功显示了应用的标签和图标,因此我知道我正在做正确的事情。请参阅下面的第二个屏幕截图,了解相关信息(帐户标签为" Bolt")。

Editing a custom contact in the Android contacts app Settings app with custom account label and icon

我有以下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中创建联系人,但这并没有改变任何内容。我也尝试了其他一些东西,但还没有任何工作。

1 个答案:

答案 0 :(得分:3)

我终于找到了问题所在。

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