要通过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?
答案 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)"