Поделиться изображением с приложением Gmail не работает - PullRequest
2 голосов
/ 19 октября 2011

У меня проблема с изображением в приложении Gmail. Это мой код.

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);     
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,  getString(R.string.mail_subject)); 
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,  getString(R.string.mail_body)); 
    emailIntent.putExtra(Intent.EXTRA_TITLE, getString(R.string.facebook_share_text));


    //Download the image first
    String location=downloadImage(true);
    File root=android.os.Environment.getExternalStorageDirectory();
    Log.e("send from where:","file:///"+root.getAbsolutePath()+"/"+location);

    //Add attachment
    emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///"+root.getAbsolutePath()+"/"+location));

    emailIntent.setType("image/jpeg");
    startActivity(Intent.createChooser(emailIntent, getString(R.string.share_by)));

Приложение электронной почты по умолчанию работает отлично, Facebook Share работает отлично, приложение Gmail работает, но вложение не отправляется, хотя отображается как вложение.

Вот скриншоты. All share options Email is send but without attachment, although the attachment is displayed here Facebook share is perfect

Так что, пожалуйста, помогите.

Ответы [ 2 ]

3 голосов
/ 17 февраля 2012
String location=downloadImage(true);
File root=android.os.Environment.getExternalStorageDirectory();
Log.e("send from where:","file:///"+root.getAbsolutePath()+"/"+location);

//Add attachment
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///"+
root.getAbsolutePath()+"/"+location));
 // replace "Uri.parse" with Uri.fromFile(new File("file:///"+
root.getAbsolutePath()+"/"+location))
emailIntent.setType("image/jpeg");
startActivity(Intent.createChooser(emailIntent, getString(R.string.share_by)));

Эта штука действительно сработала для меня. То же самое происходит со мной, когда я послал Uri.parse. Вы можете видеть, что размер вложения покажет 0 кб. Но когда я изменяю это, это работало просто отлично.

0 голосов
/ 06 октября 2016

Поделиться изображением, работающим на Facebook, WhatsApp, Gmail, Bluetooth и сообщениях также

            Uri imageUri = Uri.fromFile(file);
            Intent shareIntent = new Intent();
            shareIntent.setAction(Intent.ACTION_SEND);
            shareIntent.putExtra(Intent.EXTRA_STREAM,imageUri);
            shareIntent.setType("image/*");
            shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            startActivity(Intent.createChooser(shareIntent,"Share with.."));
...