Qui*_*ers 7 android android-contacts
我正在创建一个我想与Android的联系人/人员应用程序集成的应用程序.我设置了自定义mime类型,一个syncadapter和一个带有ContactsDataKind元素的contacts.xml文件.
这似乎工作正常,但似乎不可能为每种数据类型定义多个操作(在这种情况下,我希望人们能够查看联系人的配置文件,以及直接向他们发送消息.
G +应用程序似乎处理这个问题,但我一直无法弄清楚他们是如何做到的.以下是People中G +集成的屏幕截图:http://i.imgur.com/QotHjDk.png
感谢您的时间!
您只需在插入联系人时在ContactsContract.Data表中添加其他行.请参阅文档中的"contacts.xml结构" :
该
<ContactsDataKind>元素控制联系人应用程序UI中应用程序的自定义数据行的显示.它具有以下语法:Run Code Online (Sandbox Code Playgroud)<ContactsDataKind android:mimeType="MIMEtype" android:icon="icon_resources" android:summaryColumn="column_name" android:detailColumn="column_name">
对于其中的每一个,Contact的应用程序ContactDetailFragment都会添加一个DataViewEntry.列表条目充当用于构建联系人详细信息UI的适配器的数据.当单击包含Intent的条目时,startActivity()将调用该条目.此Intent是根据数据项的MIME类型和Uri构建的.
entry.intent = new Intent(Intent.ACTION_VIEW);
entry.intent.setDataAndType(entry.uri, entry.mimetype);
Run Code Online (Sandbox Code Playgroud)
例如,G +应用程序具有以下内容es_contacts.xml:
<ContactsDataKind android:summaryColumn="data2" android:detailColumn="data3"
Run Code Online (Sandbox Code Playgroud)
并创建如下行:
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));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1739 次 |
| 最近记录: |