如何以编程方式添加联系人?

时间:2013-03-27 10:43:56

标签: android contacts

我使用以下代码添加联系人:

        Intent intent = new Intent(Intent.ACTION_INSERT,  ContactsContract.Contacts.CONTENT_URI);

        activity.startActivityForResult(intent, ATTACH_VCARD_REQUEST_CODE);

但在我的Google Nexus上,默认的Android Contact Manager应用程序不会将结果返回给我的活动

我有以下行为:  我打电话给联络经理  2.添加字段名称,然后单击“完成”

之后打开其他默认Android联系人管理器的活动,只有当我按下或向上按钮时我才能离开此活动。之后我无法使用后台堆栈(后退按钮)返回我的应用程序活动。我可以用Recent Tasks Manager打开我的应用程序,但后来我得到resulCode == 0和intent == null。

1 个答案:

答案 0 :(得分:0)

我查看了标准联系人应用程序的源代码,并找到了负责创建新联系人的Activity。有标志INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED =" finishActivityOnSaveCompleted&#34 ;;如果此标志为true,则调用setResult(RESULT_OK);

解决这个问题的方法是

    Intent intent = new Intent(ContactsContract.Intents.Insert.ACTION);
    intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
    intent.putExtra("finishActivityOnSaveCompleted", true);
    activity.startActivityForResult(intent, ATTACH_VCARD_REQUEST_CODE);