Android创建联系问题

时间:2010-11-22 18:06:01

标签: android insert android-intent contacts

您好 我想创建一个联系人,所以这是我的代码:

Intent addPersonIntent = new Intent(Intent.ACTION_INSERT_OR_EDIT);

addPersonIntent.putExtra(Insert.NAME, "asd");
addPersonIntent.setType(Contacts.People.NAME);

addPersonIntent.putExtra(Insert.PHONE_TYPE, Contacts.Phones.TYPE_WORK);
addPersonIntent.putExtra(Insert.PHONE, Uri.decode("123"));
addPersonIntent.putExtra(Insert.PHONE_TYPE, Contacts.Phones.TYPE_MOBILE);
addPersonIntent.putExtra(Insert.PHONE, Uri.decode("123"));
addPersonIntent.setType(Contacts.Phones.CONTENT_ITEM_TYPE);

...

startActivity(addPersonIntent);

为什么唯一创建的是手机号码,我从未得到“工作”号码?

2 个答案:

答案 0 :(得分:2)

您正在考虑将“putExtra”添加到数组的末尾 - 如果您将其视为在哈希表中设置名称/值对,则您的问题会更清晰。基本上,您将PHONE_TYPE设置为“工作”,将PHONE设置为123,将PHONE_TYPE设置为“mobile”(设置为工作时覆盖),再将PHONE设置为“123”。

您要做的是使用SECONDARY_PHONE和SECONDARY_PHONE_TYPE设置“移动”或“工作”电话数据 - Details here.

此外,请记住,所有这些都遵循旧版本的Contacts API,自Android 2.0及更新版本已弃用。有关迁移代码以使用新联系人API here的便捷资源。

答案 1 :(得分:1)

这是下一个问题,当我添加:

addPersonIntent.putExtra(Insert.NOTES,“asdkjhaskh”);

音符数据永远不会出现在活动中,为什么?

整个想法是用加载的数据启动EditContactActivity.java,现在我加载了手机,名称和公司。由于某种原因,我无法加载笔记,另一个问题是如何设置IM的意图信息?例如,我尝试使用:

addPersonIntent.putExtra(Insert.IM_HANDLE,“mySkype”); addPersonIntent.putExtra(Insert.IM_PROTOCOL,Uri.decode(“skype”));

但它不起作用。