Android 如何将位图文件附加到电子邮件

Android 如何将位图文件附加到电子邮件,android,email,android-intent,bitmap,attachment,Android,Email,Android Intent,Bitmap,Attachment,我有我的代码位图,我需要通过电子邮件作为附件发送它。 我将其保存为文件,并使其具有发送意图,但每次都没有找到错误文件。 这是我的密码 保存文件: private void savePicture(String filename, Bitmap b, Context ctx) { try { FileOutputStream out; out = ctx.openFileOutput(filename, Context.MODE_APPEND);

我有我的代码位图,我需要通过电子邮件作为附件发送它。 我将其保存为文件,并使其具有发送意图,但每次都没有找到错误文件。 这是我的密码

保存文件:

private void savePicture(String filename, Bitmap b, Context ctx) {
    try {
        FileOutputStream out;
        out = ctx.openFileOutput(filename, Context.MODE_APPEND);

        b.compress(Bitmap.CompressFormat.JPEG, 40, out);
        if (b.compress(Bitmap.CompressFormat.JPEG, 40, out) == true) {
            Toast.makeText(act,"file created",Toast.LENGTH_LONG).show();
            out.close();
        }
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(act,e.getMessage(),Toast.LENGTH_LONG).show();
    }
}
发送电子邮件:

public void sendmail (String filename){
        String path = Environment.getExternalStorageDirectory().toString();
        File file = new File(path,filename+".JPEG");
        Uri pngUri = Uri.fromFile(file);
        Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
        emailIntent.setType("text/html");
        emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, pngUri);
        startActivity(Intent.createChooser(emailIntent,"send quotation"));
}
首先做

b.compress(Bitmap.CompressFormat.JPEG, 40, out);
    if (b.compress(Bitmap.CompressFormat.JPEG, 40, out) == true) {
您正在调用两次b.compressBitmap.CompressFormat.JPEG,40,out

您应该执行类似布尔成功=b.compressBitmap.CompressFormat.JPEG,40,out; 如果成功{ //你的代码 }

那么,你的目标是安卓N还是更高版本?如果是,您可能需要授予uri权限


请参阅官方文档

您试图附加的不是位图文件,而是jpg文件。您什么时候有未找到该文件的错误?谁写的?您正在将文件保存到应用程序的内存中。并告诉电子邮件应用程序它在外部内存中。完全不同的帕尔斯。