1

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

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

        activity.startActivityForResult(intent, ATTACH_VCARD_REQUEST_CODE);

但是在我的 Google Nexus 上,默认的 Android 联系人管理器应用程序不会将结果返回给我的活动

我有以下行为: 1. 我打电话给联系人经理 2. 添加字段名称并单击“完成”

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

4

1 回答 1

0

我查看了标准联系人应用程序的源代码,并找到了负责创建新联系人的 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);
于 2013-03-28T06:10:43.263 回答