我正在尝试构建一个应用程序,其中必须向用户显示仅带有电子邮件地址的电话联系人。当用户单击我的应用程序中的编辑框时,在用户选择后,必须显示仅带有电子邮件地址的电话联系人联系人,该联系人的电子邮件地址必须发送回我的应用程序,我会在我的应用程序中进一步使用它。
//这是我在 onActivityResult() 方法下的代码
try
{
Uri result = data.getData();
String id = result.getLastPathSegment();
cursor = getContentResolver().query(Email.CONTENT_URI, null, Email.CONTACT_ID + "=?", new String[] { id }, null);
emailIdx = cursor.getColumnIndex(Email.DATA);
if (cursor.moveToFirst())
{
while (cursor.isAfterLast() == false)
{
emailid = cursor.getString(emailIdx);
allids.add(emailid);
cursor.moveToNext();
}
}
else
{
//no results actions
}
}
// 这是我传递的意图。
Intent intent = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);
intent.setType(ContactsContract.CommonDataKinds.Email.ADDRESS);
startActivityForResult(intent, 1);
// 清单权限。
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<intent-filter>
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.dir/email_v2" />
<data android:mimeType="vnd.android.cursor.item/email_v2" />
</intent-filter>
当我尝试运行我的应用程序时出现以下错误。
android.content.ActivityNotFoundException: No Activity found to handle Intent {act=android.intent.action.PICK typ=data1 }
我不确定可能是什么问题,我是否在 manifest.xml 中遗漏了什么?请帮忙。
谢谢!