从本地图库中选择图片,并附加到电子邮件 [英] Select Image from Native Gallery and attach to Email

查看:244
本文介绍了从本地图库中选择图片,并附加到电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我允许用户浏览本地图库>选择图像,然后试图附加选定的图像到电子邮件,但没有得到确切的形象,看到我的code:

I am allowing user to browse native gallery > select image, and trying to attach selected image to email, but not getting exact image, see my code:

private static int RESULT_LOAD_IMAGE = 1;
String picturePath;    

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
        Uri selectedImage = data.getData();
        String[] filePathColumn = { MediaStore.Images.Media.DATA };

        Cursor cursor = getContentResolver().query(selectedImage,
                filePathColumn, null, null, null);
        cursor.moveToFirst();

        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        picturePath = cursor.getString(columnIndex);
        cursor.close();

        // getting exact image which i selected with full path
        Toast.makeText(getApplicationContext(), picturePath.toString(), Toast.LENGTH_LONG).show();

        sendImage();

    }
}

// to attach an image to email
public void sendImage() {
    // TODO Auto-generated method stub
    Intent i = new Intent(Intent.ACTION_SEND);
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    i.setType("message/rfc822");
    i.putExtra(Intent.EXTRA_STREAM, Uri.parse(picturePath));
    i.putExtra(Intent.EXTRA_EMAIL, new String[]{"recepient@mail.cin"});
    i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
    i.putExtra(Intent.EXTRA_TEXT, "body of email");
    startActivity(Intent.createChooser(i,"Send email via:"));       
}
}

什么,我缺少什么?在这里我做的错误?

What i am missing ? where i am doing mistake ?

推荐答案

试试这个用于连接形象。

Try this for attaching image.

File file = getFileStreamPath(EMAIL_TEMP_FILE);
i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
i.setType("image/jpeg");
i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+file.getAbsolutePath())); //Your image file

希望它帮助。

这篇关于从本地图库中选择图片,并附加到电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆