Android 联系人 - 自定义字段图标未显示在 android 6 中
Android contacts - custom field icon not showing in android 6
目标
我正在开发将自己的联系人保存在联系人数据库中的应用程序。我想添加我自己的带有我的徽标的字段,这会导致我的应用程序的编辑表单。
我已经做了什么
使用本教程: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 确实显示了我的字段但没有图标。
任何帮助将不胜感激,我 运行 头上没有头发 ;)
我想我解决了我的问题。 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>
目标
我正在开发将自己的联系人保存在联系人数据库中的应用程序。我想添加我自己的带有我的徽标的字段,这会导致我的应用程序的编辑表单。
我已经做了什么
使用本教程: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 确实显示了我的字段但没有图标。
任何帮助将不胜感激,我 运行 头上没有头发 ;)
我想我解决了我的问题。 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>