Android Intents.SHOW_OR_CREATE_CONTACT始终只显示Uri字符串

时间:2013-01-11 15:13:47

标签: android

我需要在创建之前显示/与新联系人进行交互,我需要一种简单的方法将其添加到手机通讯录中。

这是我使用的代码:

String contactPhone = "33333333";   
Uri contactUri = Uri.parse(String.format("tel: %s", contactPhone));
Intent addContactIntent = new Intent(
                ContactsContract.Intents.SHOW_OR_CREATE_CONTACT, contactUri); 
addContactIntent.putExtra(ContactsContract.Intents.Insert.NAME, "FirstName" );
addContactIntent.putExtra(ContactsContract.Intents.Insert.COMPANY,"CompanyName");
addContactIntent.putExtra(ContactsContract.Intents.Insert.PHONE,contactPhone);
addContactIntent.putExtra(ContactsContract.Intents.Insert.EMAIL,"contact@email.com");
startActivity(addContactIntent);

这就是结果。问题是Intent只向我显示电话而不是所有添加的信息。

enter image description here

2 个答案:

答案 0 :(得分:0)

ContactsContract.Intents.Insert.ACTION如果你想在创建它之前进行交互:

Intent intent = new Intent(ContactsContract.Intents.Insert.ACTION,ContactsContract.Contacts.CONTENT_URI);
intent.putExtra(ContactsContract.Intents.Insert.NAME, getName());
intent.putExtra(ContactsContract.Intents.Insert.COMPANY, getCompany());
intent.putExtra(ContactsContract.Intents.Insert.EMAIL, getEmail());
intent.putExtra(ContactsContract.Intents.Insert.PHONE, getPhone());
intent.putExtra(ContactsContract.Intents.Insert.POSTAL, getAddress());
startActivity(intent);

这非常有效。我希望这会对你有所帮助。

答案 1 :(得分:0)

此网站(http://wiresareobsolete.com/2011/10/simplifying-interaction-with-contacts/)显示并给出示例)SHOW_OR_CREATE_CONTACT只能触发" tel"或者" mailto" /用于搜索的电子邮件。