5

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);

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

4

1 回答 1

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");
于 2011-01-05T02:01:22.177 回答