我有一个Android应用程序,它发送一个.csv文件作为附件,我已经在清单中给出了许多代码并且提到了许多代码,但每当我发送一个附件时,邮件都没有附件。我已经提到了很多stackoverflow解决方案,但它们根本没有效果。
这是代码。
sendmail.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
sendEmail();
}
protected void sendEmail() {
Log.i("Send email", "");
String TO = email.getText().toString();
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("text/plain");
emailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{TO});
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("excerDB.csv"));
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Your ward's academic details are here");
emailIntent.putExtra(Intent.EXTRA_TEXT, "Please find the details attached....");
startActivity(emailIntent);
try {
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
finish();
Log.i("Finished sending email...", "");
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(DisplayContact.this,
"There is no email client installed.", Toast.LENGTH_SHORT).show();
}
}
});
P.S: - 我尝试在gennymotion模拟器和真实设备上运行。
答案 0 :(得分:0)
发送邮件时附件未附加到安卓程序
因为您没有将csv
文件的正确路径传递给Uri.parse
。
要创建有效的URI
,您应提供完整的文件路径:
Uri uriFile=Uri.parse(<File_Location_On_Int./Ext. Sd_Card>+"/excerDB.csv");
现在使用uriFile
作为EXTRA_STREAM
键值。
答案 1 :(得分:0)
您的EXTRA_STREAM变量是错误的:
尝试以下:
打开图库,从按钮点击中选择文件:
public void openGallery() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.putExtra("return-data", true);
startActivityForResult(
Intent.createChooser(intent, "Complete action using"),
PICK_FROM_GALLERY);
}
在活动结果上保存URI;
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICK_FROM_GALLERY && resultCode == RESULT_OK) {
/**
* Get Path, chnage type accordingly
*/
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
cursor.moveToFirst();
columnIndex = cursor.getColumnIndex(filePathColumn[0]);
attachmentFile = cursor.getString(columnIndex);
Log.e("Attachment Path:", attachmentFile);
URI = Uri.parse("file://" + attachmentFile);
cursor.close();
}
}