Android 如何打开联系人并让用户决定是否创建或选择一个联系人

Android 如何打开联系人并让用户决定是否创建或选择一个联系人,android,android-intent,android-contacts,Android,Android Intent,Android Contacts,我正在尝试打开联系人,让用户决定是创建联系人,还是选择联系人在我的应用程序上使用 我需要这样的东西: 其中,在第一个选项中,用户可以添加新联系人 我尝试了以下代码: Intent i = new Intent(Intent.ACTION_INSERT_OR_EDIT); i.setType(ContactsContract.Contacts.CONTENT_TYPE); i.putExtra("finishActivityOnSaveCompleted", true); // Fix for

我正在尝试打开联系人,让用户决定是创建联系人,还是选择联系人在我的应用程序上使用

我需要这样的东西:

其中,在第一个选项中,用户可以添加新联系人

我尝试了以下代码:

Intent i = new Intent(Intent.ACTION_INSERT_OR_EDIT);
i.setType(ContactsContract.Contacts.CONTENT_TYPE);
i.putExtra("finishActivityOnSaveCompleted", true); // Fix for 4.0.3 +
startActivityForResult(i, CARREGA_CONTATOS);
但是a在Logcat上得到了这个错误(就在startActivityForResult之后):

android.content.ActivityNotFoundException:未找到可处理意图的活动{act=android.Intent.action.INSERT_或_EDIT typ=vnd.android.cursor.dir/contact(具有额外功能)}

我做错了什么

编辑:

我也尝试了这段代码,结果也很相似:

Intent intent = new Intent(
    Intent.ACTION_INSERT_OR_EDIT,
    ContactsContract.Contacts.CONTENT_URI
);
startActivityForResult(intent, CARREGA_CONTATOS);
android.content.ActivityNotFoundException:未找到处理Intent{act=android.Intent.action.INSERT_或_EDIT dat的活动=content://com.android.contacts/contacts }

编辑2: 几乎是我需要的:

Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
i.putExtra("finishActivityOnSaveCompleted", true); // Fix for 4.0.3 +
startActivityForResult(i, CARREGA_CONTATOS);
但是这个代码会打开这个图像,用户必须选择“联系人”,然后才能转到我想要的地方。 似乎建议使用:

// Creates a new Intent to insert a contact
Intent intent = new Intent(Intents.Insert.ACTION);
// Sets the MIME type to match the Contacts Provider
intent.setType(ContactsContract.RawContacts.CONTENT_TYPE);

通常您必须添加默认类别
intent.addCategory(intent.category\u default)
使其与操作匹配。

您是否尝试过以下操作:


您是否在清单中声明了您的活动?该代码直接指向“新联系人”。我需要一个选项,让用户从现有联系人中选择或创建新联系人。您尝试过吗?医生说会帮你处理的是的我试过这个。。。这只是编辑现有联系人。我想选择一个或创建一个新的。在我的应用程序中,我只需要那个联系人的名字……然后我想你必须自己去做。显示一个弹出窗口,在其中进行选择,并根据该弹出窗口触发一个意图(检索列表并选择)或另一个意图(创建新)。我避免使用这种方法,因为用户可能不知道联系人是否已注册。我尝试了此代码
intent intent=new intent(Intent.ACTION_INSERT_或_EDIT,Contacts Contacts.Contacts.CONTENT_URI);Intent.putExtra(“finishActivityOnSaveCompleted”,true);//修复4.0.3+Intent.addCategory(Intent.CATEGORY_默认);startActivityForResult(Intent,CARREGA_CONTATOS);
但不起作用
Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
intent.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
startActivity(intent);