您只需要在ContactsContract.Data
表中添加其他行插入聯繫人時使用。看到documentation「contacts.xml結構」:
的<ContactsDataKind>
元素控制你的 應用程序的自定義數據行的聯繫人應用程序的用戶界面的顯示屏。它 的語法如下:
<ContactsDataKind
android:mimeType="MIMEtype"
android:icon="icon_resources"
android:summaryColumn="column_name"
android:detailColumn="column_name">
有關這些每一個聯繫人的應用ContactDetailFragment增加了一個DataViewEntry
。列表條目充當用於構建聯繫人詳情UI的適配器的數據。當包含意圖的條目被點擊時,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));
這不是我清楚你在做什麼試圖去做。您是否希望自己的應用出現在聯繫人/人員內部的菜單中,或者在您的應用中有多個操作選項?在我的手機上,我可以看到屏幕截圖中的鏈接方式,即進入手機應用程序,觸摸某人的磁貼上的菜單按鈕(三個垂直對齊的點)與該人的聯繫信息進行對話,然後觸摸該對話框中的聯繫人圖標。那時我不確定我是否仍在電話應用程序或聯繫人/人應用程序中。 – hBrent