Изображение, прикрепленное к электронной почте, не получено - PullRequest
1 голос
/ 27 января 2012

Я пытаюсь программно прикрепить изображение к телу электронной почты из моего приложения. Я видел несколько тем о том, как это сделать, и точно так же разместил свой код, но это бесполезно, я не получаю изображение вдругая сторона (из этой записи ).для получения дополнительной информации вот мой код:

Intent emailIntent=new Intent(Intent.ACTION_SEND);
            emailIntent.setData(Uri.parse("mailto:"));
            emailIntent.setType("image/jpg");
            emailIntent.putExtra(Intent.EXTRA_SUBJECT, getResources().getString(R.string.mail_partage_objet));
            emailIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(readEmailTemplate()));
            String imageFilePath=Constants.PHOTO_CACHE_PATH+"/"+currentPlace.getPhotoFileName();
            Log.d(TAG,"Picture Path: "+imageFilePath);
            emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(imageFilePath));
            startActivity(Intent.createChooser(emailIntent, getResources().getString(R.string.email_share)));

, где PHOTO_CACHE_PATH - это путь к каталогу, в котором сохранено изображение и оно находится на SD-карте

1 Ответ

0 голосов
/ 27 января 2012

Я думаю, что вы забыли: emailIntent.setType("application/octet-stream");.

Пример для нескольких приложений:

    Intent exportMessageIntent = new Intent(
            android.content.Intent.ACTION_SEND_MULTIPLE);
    exportMessageIntent.setType("text/plain");
    exportMessageIntent.setType("application/octet-stream");
    ArrayList<Uri> uris = new ArrayList<Uri>();

            //array of urls to your files on device - they are strings
    filePaths = new String[] { "path1","path2" };  //for your case just insert imageFilePath -> filePaths = new String[] { imageFilePath };
            //create files from string array of paths
    for (String file : filePaths) {
        File fileIn = new File(file);
        Uri u = Uri.fromFile(fileIn);
        uris.add(u);
    }
    exportMessageIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,
            uris);

    exportMessageIntent
            .putExtra(Intent.ACTION_DEFAULT, "test/");

    exportMessageIntent.putExtra(Intent.EXTRA_SUBJECT,"Subject text");

    exportMessageIntent.putExtra(Intent.EXTRA_TEXT,"bodytext");

    startActivity(exportMessageIntent);

Надеюсь, это поможет, Тони

...