【发布时间】:2016-04-04 09:46:00
【问题描述】:
我正在尝试通过我的应用访问联系人。所以我可以通过邮件与朋友分享信息。到目前为止,联系人已显示,但是当我单击要添加到电子邮件的名称时,应用程序只是返回到上一个屏幕并且不会发送电子邮件。编辑文本未设置为我选择的联系人。
Android 清单
<uses-permission android:name="android.permission.READ_CONTACTS"> </uses-permission>
电子邮件发送类
contacts.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
Contacts.CONTENT_URI);
startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);
}
});
....
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
System.out.println("yo");
switch (requestCode) {
case CONTACT_PICKER_RESULT:
Cursor cursor = null;
String email = "";
System.out.println("Hello");
try {
Uri result = data.getData();
Log.v("DEBUG: ", "Got a contact result: "
+ result.toString());
// get the contact id from the Uri
String id = result.getLastPathSegment();
// query for everything email
cursor = getContentResolver().query(Email.CONTENT_URI,
null, Email.CONTACT_ID + "=?", new String[] { id },
null);
int emailIdx = cursor.getColumnIndex(Email.DATA);
// let's just get the first email
if (cursor.moveToFirst()) {
email = cursor.getString(emailIdx);
Log.v("DEBUG: ", "Got email: " + email);
} else {
Log.w("DEBUG: ", "No results");
}
} catch (Exception e) {
Log.e("DEBUG: ", "Failed to get email data", e);
} finally {
if (cursor != null) {
cursor.close();
}
// EditText emailEntry = (EditText) findViewById(R.id.invite_email);
personsEmail.setText(email);
if (email.length() == 0) {
Toast.makeText(this, "No email found for contact.",
Toast.LENGTH_LONG).show();
}
}
break;
}
} else {
Log.w("DEBUG: ", "Warning: activity result not ok");
}
}
更令人费解的是,logcat 上竟然什么都没有出现!所以它超越了我所有的错误检查。知道为什么屏幕崩溃并且电子邮件地址未添加到 EditText 中吗?
【问题讨论】:
-
您遇到的异常是什么?请分享,如果您在 Marshmallow 中进行测试,您还需要在运行时检查权限。在 Marshmallow 中,用户可以在安装应用程序后禁用访问。
-
它在 logcat 上显示 Keyboard.Facilitator onFinishInput()。使用带有android插件的eclipse。谢谢你帮助我!
-
不需要每个联系人都有一个电子邮件 ID。从 gmail 同步的联系人通常有电子邮件 ID,但手动添加的联系人没有它
-
@VivekMishra 如果我不使用 ID 我会怎么做?
-
@MsYvette 这是我清单中的内容:
标签: java android email android-contacts