2013-03-27 80 views
1

我用下面的代码添加联系人:如何以编程方式添加联系人?

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

     activity.startActivityForResult(intent, ATTACH_VCARD_REQUEST_CODE); 

但在我的谷歌Nexus默认的Android联系人管理器应用程序的结果不回我的活动

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

之后,打开默认Android Contact Manager的其他Activity,只有当我按回或向上按钮时才可以离开此活动。之后,我无法使用back stack(后退按钮)返回到我的应用程序活动。我可以使用Recent Tasks Manager打开我的应用程序,但是然后我得到resulCode == 0和intent == null。

回答

0

我查看了standart Contacts应用程序的源代码并找到了负责创建新联系人的Activity。有标志INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED =“finishActivityOnSaveCompleted”;如果这个标志是真的,那么调用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); 
+0

这并不在4.4.2 Android设备的工作。有人知道解决方案吗?请分享... – Sandra 2014-09-16 11:48:27

相关问题