我使用以下代码添加联系人:
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。
答案 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);