Android联系人 - 自定义字段图标未显示在android 6中

时间:2016-03-17 13:10:18

标签: android android-contacts android-6.0-marshmallow android-6.0.1-marshmallow

目标

我正致力于在联系人数据库中保留自己的联系人的应用程序。我想添加自己的字段,其中包含导致我的应用程序编辑表单的徽标。

我已经做了什么

使用本教程:http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-2/ 还有其他几个来源我已经组装了这样的东西:

AndroidMainifest.xml:

    <service android:enabled="true" android:exported="true" android:name="com.MySyncAdapterService" android:process=":contacts">
       <intent-filter android:icon="@drawable/icon">
          <action android:name="android.content.SyncAdapter" />
       </intent-filter>
       <meta-data android:name="android.provider.CONTACTS_STRUCTURE" android:resource="@xml/contacts" />
       <meta-data android:name="android.content.SyncAdapter" android:resource="@xml/sync_contacts" />
    </service>

Contacts.xml:

<ContactsAccountType xmlns:android="http://schemas.android.com/apk/res/android">
  <ContactsDataKind
    android:icon="@drawable/icon"
    android:smallIcon="@drawable/icon"
    android:mimeType="vnd.android.cursor.item/vnd.my.contact"
    android:summaryColumn="data2"
    android:detailColumn="data3"
    android:detailSocialSummary="true" >
  </ContactsDataKind>
</ContactsAccountType>

问题

从第一张图片中可以看出,我的自定义字段在Android 4.3中正确显示图标。不幸的是,Android 6.0.1会显示我的字段但没有图标。

4.3 version 6.0.1 version

任何帮助都将受到赞赏,我头上的头发已经用完了;)

1 个答案:

答案 0 :(得分:4)

我想我解决了我的问题。 Android 6.0似乎忽略了ContactsDataKind图标属性。为了提供自定义字段的图标,您需要提供对其进行处理的操作。如果提供了意图过滤器图标,它将使用它。如果没有,它将使用您的应用程序的图标。

<activity android:name=".ContactActivity">
  <intent-filter android:icon="@drawable/icon">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="vnd.android.cursor.item/vnd.my.contact" />
  </intent-filter>
</activity>