【问题标题】:Select Image from Native Gallery and attach to Email从本地图库中选择图像并附加到电子邮件
【发布时间】:2014-01-08 07:53:43
【问题描述】:

我允许用户浏览本地图库 > 选择图片,并尝试将所选图片附加到电子邮件中,但没有得到准确的图片,请参阅我的代码:

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:"));       
}
}

我错过了什么?我在哪里做错了?

【问题讨论】:

  • 打印picturePath 值并检查它持有什么?
  • @Kitkat 我试过用这个:Toast.makeText(getApplicationContext(), picturePath.toString(), Toast.LENGTH_LONG).show();并获得我选择的确切图像名称
  • 您是只获得图像名称还是带有完整路径的图像名称?
  • @Kitkat 获取完整路径,例如:- storage > sdcard0 > dcim > Camera > copy2.jpg

标签: android email android-intent android-gallery


【解决方案1】:

试试这个附加图片。

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

希望对你有帮助。

【讨论】:

  • 好 :) @AbrahimNeil 编码快乐。
  • 需要帮助我可以通过聊天加入你吗?
猜你喜欢
  • 2015-06-16
  • 1970-01-01
  • 2010-10-06
  • 2016-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多