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

Jef*_*man 5 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);
Run Code Online (Sandbox Code Playgroud)

这工作,但我不知道如何处理给定字段的多种类型,比如电话号码.在意图中,我可以添加一个额外的电话号码,我可以增加一个电话号码类型,但我如何额外增加一个额外的电话号码,具有不同的(或可能是相同的)类型?

Squ*_*onk 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");
Run Code Online (Sandbox Code Playgroud)