我已经创建了自定义帐户类型,我可以在android ContactsContract ContentProvider中成功创建该类型的联系人。但是,在编辑默认联系人应用中的联系人时,我很难弄清楚如何获取自定义帐户标签和图标。
编辑自定义联系人类型时,标签应类似于"通过右侧的应用程序图标联系"相反,编辑我的类型的联系人始终显示标签为"仅限电话,未同步的联系人"。请参阅下面的第一个屏幕截图以获取示例。
奇怪的是它确实拿起了我的帐户名称,您可以在错误标签下面的屏幕截图中看到它(以" + 1415"开头)。
我已经在帐户下的设置应用中成功显示了应用的标签和图标,因此我知道我正在做正确的事情。请参阅下面的第二个屏幕截图,了解相关信息(帐户标签为" Bolt")。
我有以下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中创建联系人,但这并没有改变任何内容。我也尝试了其他一些东西,但还没有任何工作。
答案 0 :(得分:3)
我终于找到了问题所在。
在我的sync-adapter
元素中,android:contentAuthority
属性设置为我自己的联系人ContentProvider
的自定义内容权限,这在技术上是我用来查询和编写联系人数据的内容。但结果是,您的联系人会显示在默认联系人应用中,此属性必须设置为"com.android.contacts"
。