Android несколько почтовых вложений с помощью Намерения

Я работал над программой Android для отправки электронного письма с вложением (файл изображения, звуковой файл, и т.д.) использование Намерения с ACTION_SEND. Программа работает, когда электронная почта имеет единственное вложение. Я использовал Intent.putExtra(android.content.Intent.EXTRA_STREAM, uri) для присоединения обозначенного файла изображения к почте и это хорошо работает, почта может быть поставлена через Gmail. Однако, когда я пытался присоединить повторные изображения к той же почте путем вызова Intent.putExtra(android.content.Intent.EXTRA_STREAM, uri) многократно, этому не удалось работать. Ни одно из вложения не обнаруживается в электронном письме.

Я искал документацию SDK и Android, программируя группу пользователей о почтовом вложении, но не могу найти связанную информацию Однако, я обнаружил, что существует другая поглощенная константа ACTION_SEND_MULTIPLE (доступный начиная с уровня API 4), который мог бы отвечать моему требованию. На основе документации SDK это просто указывает, что поставляет несколько данных кому-то еще, это работает как ACTION_SEND, кроме данных несколько. Но я все еще не мог выяснить корректное использование для этой команды. Я пытался объявить намерение с ACTION_SEND_MULTIPLE, затем звоните putExtra(EXTRA_STREAM, uri) многократно для присоединения повторных изображений но я получил тот же ошибочный результат точно так же, как прежде, ни одно из вложения не обнаруживается в электронном письме.

Имеет любого, которым судят ACTION_SEND_MULTIPLE и добрался, это работающий с несколькими посылает вложение по электронной почте?

97
задан Idolon 7 October 2011 в 11:56
поделиться

2 ответа

Здесь я нашел отличный пример http://www.blackmoonit.com/2010/02/filebrowser-send-receive-intents/

, вы должны использовать

final Intent aIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
aIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,theUris);
aIntent.setType(theOverallMIMEtype);
18
ответ дан 24 November 2019 в 05:22
поделиться

Вот код, необходимый для создания emailIntent, содержащего несколько вложений.

public static void email(Context context, String emailTo, String emailCC,
    String subject, String emailText, List<String> filePaths)
{
    //need to "send multiple" to get more than one attachment
    final Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
    emailIntent.setType("text/plain");
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, 
        new String[]{emailTo});
    emailIntent.putExtra(android.content.Intent.EXTRA_CC, 
        new String[]{emailCC});
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject); 
    emailIntent.putExtra(Intent.EXTRA_TEXT, emailText);
    //has to be an ArrayList
    ArrayList<Uri> uris = new ArrayList<Uri>();
    //convert from paths to Android friendly Parcelable Uri's
    for (String file : filePaths)
    {
        File fileIn = new File(file);
        Uri u = Uri.fromFile(fileIn);
        uris.add(u);
    }
    emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
    context.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
}
186
ответ дан 24 November 2019 в 05:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: