与Intents.Insert的Android插入联系不起作用

时间:2013-08-23 05:03:43

标签: android android-intent android-contacts

我正在尝试开发一个应用程序,我需要访问联系人以添加姓名的电话号码。为此我正在使用以下代码。

Intent intent = new Intent(Intents.Insert.ACTION);
intent.setType(ContactsContract.RawContacts.CONTENT_TYPE);
intent.putExtra(Intents.Insert.NAME, "Silambarasan");
intent.putExtra(Intents.Insert.PHONE, 9876543210L);
intent.putExtra(Intents.Insert.PHONE_TYPE, Phone.TYPE_MOBILE);
startActivity(intent);

此代码打开添加联系人屏幕,但在屏幕中仅显示从此代码发送的“Silambarasan”。电话号码:9876543210L未通过。

我使用正确的方法吗?

提前致谢。

3 个答案:

答案 0 :(得分:2)

试试这个,

Intent addPersonIntent = new Intent(Intent.ACTION_INSERT);
                                        addPersonIntent.setType(ContactsContract.Contacts.CONTENT_TYPE);

                                        addPersonIntent.putExtra(ContactsContract.Intents.Insert.NAME, "name");
                                        addPersonIntent.putExtra(ContactsContract.Intents.Insert.PHONE, "phone");
                                        addPersonIntent.putExtra(ContactsContract.Intents.Insert.EMAIL, "email");
                                        addPersonIntent.putExtra(ContactsContract.Intents.Insert.POSTAL, "address");

                                        startActivityForResult(addPersonIntent, CREATE_NEW);

答案 1 :(得分:2)

来自ContactsContract.Intents.Insert文档

  

public static final String PHONE :在API级别5中添加

     

联系电话号码的额外字段。

     

输入: 字符串 //清除您需要为此额外传递字符串值

     

常数值: "电话"


只需将数字作为字符串传递给可以使用的额外字符。

所以改变 intent.putExtra(Intents.Insert.PHONE, 9876543210L);

 intent.putExtra(Intents.Insert.PHONE, "9876543210");

答案 2 :(得分:1)

你为什么不这样传递它?

intent.putExtra("nameForThisExtra", "Silambarasan")
intent.putExtra("nameForThisExtra", "9876543210L");
intent.putExtra("nameForThisExtra", Phone.TYPE_MOBILE);

并在这样的ohter活动中调用它:

String name = getIntent().getStringExtra("nameForThisExtra");
String number = getIntent().getStringExtra("nameForThisExtra");

这应该有效。

第一个参数是您要为此Extra提供的名称,第二个参数是该值。