gpt4 book ai didi

android - 联系人应用程序中的自定义操作(类似于 G+)

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:25:23 25 4
gpt4 key购买 nike

我正在创建一个应用程序,我想将其与 Android 的联系人/人员应用程序集成。我设置了我的自定义 MIME 类型、一个同步适配器和一个包含 ContactsDataKind 元素的 contacts.xml 文件。

这似乎工作正常,但似乎无法为每种数据类型定义多个操作(在这种情况下,我希望人们能够查看联系人的个人资料,并直接向他们发送消息。

Google+ 应用程序似乎可以处理此问题,但我一直无法弄清楚他们是如何做到的。这是 People 中 G+ 集成的屏幕截图:http://i.imgur.com/QotHjDk.png

感谢您的宝贵时间!

最佳答案

您只需ContactsContract.Data 中添加额外的行表格 插入联系人时。请参阅 documentation 中的“contacts.xml 结构” :

The <ContactsDataKind> element controls the display of your application's custom data rows in the contacts application's UI. It has the following syntax:

<ContactsDataKind
android:mimeType="MIMEtype"
android:icon="icon_resources"
android:summaryColumn="column_name"
android:detailColumn="column_name">

对于其中的每一个,联系人的应用程序 ContactDetailFragment加一个 DataViewEntry .列表条目充当用于构建联系人详细信息 UI 的适配器的数据。单击包含 Intent 的条目时,startActivity()叫做。此 Intent 是根据数据项的 MIME 类型和 Uri 构建的。

entry.intent = new Intent(Intent.ACTION_VIEW);
entry.intent.setDataAndType(entry.uri, entry.mimetype);

例如,G+ 应用程序具有以下 es_contacts.xml :

<ContactsDataKind android:summaryColumn="data2" android:detailColumn="data3"

然后像这样创建行:

ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference("raw_contact_id", i1)
.withValue("mimetype", "vnd.android.cursor.item/vnd.googleplus.profile.comm")
.withValue("data4", Integer.valueOf(14))
.withValue("data5", "hangout")
.withValue("data3", context.getString(R.string.start_hangout_action_label));

ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference("raw_contact_id", i1)
.withValue("mimetype", "vnd.android.cursor.item/vnd.googleplus.profile")
.withValue("data4", Integer.valueOf(20))
.withValue("data5", "addtocircle")
.withValue("data3", context.getString(R.string.add_to_circle_action_label));

关于android - 联系人应用程序中的自定义操作(类似于 G+),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24569706/

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