Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 什么';这是共享Uri';在意图和#x27之间;要在电子邮件中用作附件的?_Android_Email_Photo - Fatal编程技术网

Android 什么';这是共享Uri';在意图和#x27之间;要在电子邮件中用作附件的?

Android 什么';这是共享Uri';在意图和#x27之间;要在电子邮件中用作附件的?,android,email,photo,Android,Email,Photo,我正在尝试制作一个应用程序,可以让我拍一些照片,然后通过电子邮件发送给某人。拍摄照片和发送电子邮件确实有效,但如何将照片附加到电子邮件 这是我在intent One中拍摄照片时使用的代码: public void maak_foto(View view) { Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); File pictureFileDir = Environmen

我正在尝试制作一个应用程序,可以让我拍一些照片,然后通过电子邮件发送给某人。拍摄照片和发送电子邮件确实有效,但如何将照片附加到电子邮件

这是我在intent One中拍摄照片时使用的代码:

public void maak_foto(View view) {

    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

    File pictureFileDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
    File FileDir = new File(pictureFileDir, "offerte_fotos");

    try {
        FileDir.mkdirs();
    }finally {

    }

    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyymmddhhmmss", Locale.getDefault());
    String date = dateFormat.format(new Date());
    String photoFile = "OfferteFoto_" + date + ".jpg";

    String filename = pictureFileDir.getPath() + File.separator + photoFile;

    File photo = new File(filename);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
    imageUri = Uri.fromFile(photo);
    startActivityForResult(intent, TAKE_PICTURE);
}


@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case TAKE_PICTURE:
        if (resultCode == Activity.RESULT_OK) {
            Uri selectedImage = imageUri;
            getContentResolver().notifyChange(selectedImage, null);
            ContentResolver cr = getContentResolver();



            try {
                bitmap = android.provider.MediaStore.Images.Media.getBitmap(cr, selectedImage);


                bitmap.recycle();
                Toast.makeText(this, selectedImage.toString(), Toast.LENGTH_LONG).show(); 
                Log.i("IMAGE_PATH", selectedImage.toString());
            } catch (Exception e) {
                Toast.makeText(this, "Failed to load", Toast.LENGTH_SHORT).show();
                Log.e("Camera", e.toString());
            }
        }
    }
}
这是我用来以另一种目的发送电子邮件的代码。(单击“下一步”时)

我无法找到如何从拍照意图到发送电子邮件意图获取URI。 我可能在什么地方做错了什么


希望有人能提供帮助。

查看此问题,了解如何通过intent将文件添加到电子邮件中我知道如何从保存的照片中获取uri,但如何在下一个intent中添加/使用它们?您是指拍照后的照片uri吗?如果您的intent要求相机应用程序拍摄一张照片,那么您提供给它的文件名将调用
intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(photo))
应使用该文件名保存pic。然后,您可以将该文件附加到电子邮件中。唯一需要注意的是,AFAIK没有办法要求摄像头应用程序提供多张照片。不幸的是,你必须查询相机的输出文件夹并进行日期匹配。我想要的是。。。打开照片意图,拍摄多张照片,保存URi,打开第二个意图(电子邮件意图),附加拍摄的照片(使用保存的URi),发送电子邮件。我可以得到一张照片要附加,但当我制作更多的照片时,它们不会附加。它现在正在工作。。。我不知道我做对了什么,但它起作用了。
        String to = "email adres goes here";
    String verkoopmail[] = { to } ;
    String message = "Hallo verkoop, "
            + '\n' + "Dhr./Mevr. " + contactpersoon + " van " + bedrijfsnaam + " wil graag een offerte ontvangen voor een " + soortbouw + "." 
            + '\n' + "De algemeene contact gegevens zijn:"
            + '\n' + "Adres: " + adres
            + '\n' + "Telefoon nummer: " + telefoon
            + '\n' + "Email adres: " + email;


    Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
    emailIntent.setType("image/jpeg"); //text/plain
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, verkoopmail);
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Offerte aanvraag");
    emailIntent.putParcelableArrayListExtra(android.content.Intent.EXTRA_STREAM, uris);

    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);
    startActivity(emailIntent);