Android - 发送电子邮件,图片附件返回0KB大小

时间:2014-08-14 07:55:44

标签: java android

我创建了一个带动作的应用点击发送带有图像附件的电子邮件,我认为代码工作正常,我发现附件的图像大小是0kb,当我点击它时,它说“无法找到item“,这是我用于

的代码
public void SendEmailWithAttachment(final String imageUrl){
    String path = "file:///android_asset".concat(File.separator).concat(getString(R.string.sa_books_directory)).concat(File.separator); // Get the path file from my asset folder

    Intent emailIntent = new Intent(Intent.ACTION_SEND);
    emailIntent.setType("image/jpeg");
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, "");
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "This is subject");
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "This is email body");

    emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(path + "IndividualVillas/pages/" + imageUrl + ".jpg"));

    startActivity(emailIntent);  
}

我不知道问题出在哪里,我曾尝试更改setType但它也没有帮助我。任何帮助都会非常感激:)

抱歉我的英文不好

2 个答案:

答案 0 :(得分:2)

    Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
    emailIntent.setType("image/jpeg");
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
    //emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,body);
    emailIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(new StringBuilder()
    .append("I think you'll like this ")
    .append(wineName).append(".")
    .append("<br /><br />Scanned it with the ")
    .append(bottleRating+tastingNote)

    emailIntent.putExtra(Intent.EXTRA_STREAM,Uri.parse("file://"+winePic));

    final PackageManager pm = ShareWineActivity.this.getPackageManager();
    final List<ResolveInfo> matches = pm.queryIntentActivities(emailIntent, 0);
    ResolveInfo best = null;
    for (final ResolveInfo info : matches)
        if (info.activityInfo.packageName.endsWith(".gm")|| info.activityInfo.name.toLowerCase().contains("gmail"))
            best = info;
    if (best != null)
        emailIntent.setClassName(best.activityInfo.packageName,best.activityInfo.name);
    startActivityForResult(emailIntent, 2015);

答案 1 :(得分:0)

路径是否正确?如果你仔细检查过那么:

这里的问题是特权。如果你想为其他应用程序提供一些私有文件,那么你可能想要使用这个简单,漂亮和干净的解决方案:https://developer.android.com/reference/android/support/v4/content/FileProvider.html