使用Android联系人应用程序编辑由自定义内容提供商添加的原始联系人
我的应用程序使用自定义的使用Android联系人应用程序编辑由自定义内容提供商添加的原始联系人,android,android-intent,android-contentprovider,android-contacts,Android,Android Intent,Android Contentprovider,Android Contacts,我的应用程序使用自定义的ContentProvider将联系人“Bob”添加到通讯簿中。 在Android联系人应用程序中,Bob与任何其他(谷歌)联系人一样出现。但是当我在Contacts应用程序中编辑Bob时,我的应用程序提供的数据是不可编辑的。到目前为止还不错 我的问题是:在我的应用程序中,是否有办法启动联系人应用程序,允许用户编辑属于我的应用程序的Bob部分 我已尝试使用相应的意图,如本文所述,但使用Bob的原始联系人uri: 这会打开联系人应用程序,但仍然无法编辑Bob的数据 关于SO
ContentProvider
将联系人“Bob”添加到通讯簿中。
在Android联系人应用程序中,Bob与任何其他(谷歌)联系人一样出现。但是当我在Contacts应用程序中编辑Bob时,我的应用程序提供的数据是不可编辑的。到目前为止还不错
我的问题是:在我的应用程序中,是否有办法启动联系人应用程序,允许用户编辑属于我的应用程序的Bob部分
我已尝试使用相应的意图
,如本文所述,但使用Bob的原始联系人uri:
这会打开联系人应用程序,但仍然无法编辑Bob的数据
关于SO,有很多问题,包括如何或。但我没有找到任何声明,包括一个引用,如果可以使用Contacts应用程序让用户编辑自定义原始联系人。是否有人有线索,最好是参考资料?您需要将EditSchema添加到contact.xml文件中,并添加元数据,指向清单文件的SyncService部分中的该文件,如下所示:
<service
android:name=".syncadapter.SyncService"
android:exported="true">
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
<meta-data
android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter" />
<meta-data
android:name="android.provider.CONTACTS_STRUCTURE"
android:resource="@xml/contacts" />
</service>
<service
android:name=".syncadapter.SyncService"
android:exported="true">
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
<meta-data
android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter" />
<meta-data
android:name="android.provider.CONTACTS_STRUCTURE"
android:resource="@xml/contacts" />
</service>