gpt4 book ai didi

android - 使用 Android 联系人应用程序编辑由自定义 ContentProvider 添加的原始联系人

转载 作者:太空狗 更新时间:2023-10-29 14:16:09 26 4
gpt4 key购买 nike

我的应用程序使用自定义 ContentProvider 将联系人“Bob”添加到地址簿。在 Android 通讯录应用程序中,Bob 与任何其他 (Google) 联系人一样显示。但是,当我在联系人应用程序中编辑 Bob 时,我的应用程序提供的数据不可编辑。到目前为止一切顺利。

我的问题是:在我的应用程序中,有没有办法启动联系人应用程序,允许用户编辑Bob的部分属于我的应用程序?

我已尝试使用相应的 Intent,如 Android guide 中所述,但使用 Bob原始联系人 uri:

Uri rawUri = getRawContactUri("Bob");
Intent intent = new Intent(Intent.ACTION_EDIT, rawUri);
startActivityForResult(intent, EDIT_CONTACT_RESULT);

这会打开联系人应用程序,但仍然无法编辑 Bob 的数据。

有很多关于 SO 的问题,包括如何 open your app from within the Contacts app when a custom field is selectedhow to fire ACTION_EDIT correctly .
但我没有找到任何声明 - 包括引用 - 如果可以使用联系人应用程序让用户编辑自定义原始联系人。有没有人有线索,最好是引用?

最佳答案

您需要将 EditSchema 添加到您的 contact.xml 文件并添加元数据,指向 list 文件的 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>

这是官方来源中的 EditSchema 示例:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android-apps/4.2.2_r1/packages/apps/Contacts/tests/res/xml/test_basic_contacts.xml/

关于android - 使用 Android 联系人应用程序编辑由自定义 ContentProvider 添加的原始联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21878237/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com