插入联系人意图,多个电话/电子邮件/等类型?

时间:2011-01-04 23:30:58

标签: android android-contacts

android允许我启动创建新联系人的意图。我可以将额外内容添加到预填充新联系人字段的意图中。

Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
intent.putExtra(ContactsContract.Intents.Insert.NAME, "Foo Bar");
intent.putExtra(ContactsContract.Intents.Insert.PHONE, "(408) 555-1212");
intent.putExtra(ContactsContract.Intents.Insert.EMAIL, "foo.bar@foobar.com");
startActivityForResult(intent, INSERT_CONTACT_REQUEST);

这有效,但我不知道如何处理给定字段的多种类型,比如电话号码。在意图中,我可以添加一个额外的电话号码,我可以添加一个额外的电话号码类型,但我如何增加一个额外的电话号码,与另一个(或许甚至相同)类型?

1 个答案:

答案 0 :(得分:6)

ContactsContract.Intents.Insert允许PHONE, SECONDARY_PHONE and TERTIARY_PHONE - 这同样适用于EMAIL,并且它表明每个中的三个可能是最大值。

我不知道是否可以拥有多个相同'类型'的手机 - 例如,一旦我分配了家庭电话号码,我的电话联系人编辑器会从选项列表中删除“家庭”。但是,您可以指定自己的“自定义”类型。例如,假设您的朋友有两个家庭号码......

intent.putExtra(ContactsContract.Intents.Insert.PHONE, "(123) 456-1212");
intent.putExtra(ContactsContract.Intents.Insert.PHONE_TYPE, "HOME-1");
intent.putExtra(ContactsContract.Intents.Insert.SECONDARY_PHONE, "(123) 456-2121");
intent.putExtra(ContactsContract.Intents.Insert.SECONDARY_PHONE_TYPE, "HOME-2");