ADB shell:添加带附加功能的联系人

时间:2014-05-09 11:41:10

标签: android shell android-intent android-contacts

要通过adb shell添加联系人,请使用命令

am start -a android.intent.action.INSERT -t vnd.android.cursor.dir/contact

以及额外信息

-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE>
Add string data as a key-value pair. 

所以,例如

创建了一个号码为123-456的联系人“Donald Duck”
am start -a android.intent.action.INSERT -t vnd.android.cursor.dir/contact -e name 'Donald Duck' -e phone 123-456

电话簿有12个mimetypes:

_id: mimetype
1: vnd.android.cursor.item/email_v2
2: vnd.android.cursor.item/im
3: vnd.android.cursor.item/nickname
4: vnd.android.cursor.item/organization
5: vnd.android.cursor.item/phone_v2
6: vnd.android.cursor.item/sip_address
7: vnd.android.cursor.item/name
8: vnd.android.cursor.item/postal-address_v2
9: vnd.android.cursor.item/identity
10: vnd.android.cursor.item/photo
11: vnd.android.cursor.item/group_membership
12: vnd.android.cursor.item/website

对于电子邮件地址,它是“电子邮件”,名称是“名称”,“phone_v2”是电话。 但是我找不到任何可用于例如“邮政地址”,“组织”或“网站”。

如何找出添加这些额外信息所需的EXTRA_KEY?

1 个答案:

答案 0 :(得分:2)

找到它。在!令人难以置信的清晰和良好安排的Android开发文档! 来自http://developer.android.com/reference/android/provider/ContactsContract.Intents.Insert.html#POSTAL

public static final String POSTAL

The extra field for the contact postal address.

Type: String

Constant Value: "postal"

交互式示例(如果您有dialog命令可用),在我的本地debian chroot @ /usr/local/bin/android.add中:

#!/bin/sh
/system/bin/am start -a android.intent.action.INSERT -t vnd.android.cursor.dir/contact -e name "$(dialog --stdout --inputbox 'Contact Name' 0 0)" -e postal "$(dialog --stdout --inputbox 'Postal Address' 0 0)" -e phone "$(dialog --stdout --inputbox 'Phone Number' 0 0)" -e email "$(dialog --stdout --inputbox 'Email' 0 0)"