Ich versuche, mehrere Bilder zu einer E-Mail-Absicht hinzuzufügen. Dies ist der Code, den ich benutzt habe.Bilder, die nicht an E-Mail angehängt sind
final ArrayList<Uri> uris = new ArrayList<>();
for (int i = 0; i < form.getImageContainers().size(); i++)
uris.add(Uri.fromFile(new File(form.getImageContainers().get(i).getImagePath())));
final Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:"))
.putExtra(Intent.EXTRA_EMAIL, "[email protected]")
.putExtra(Intent.EXTRA_SUBJECT, "Sample Submission (Beta Test)")
.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(buildBody()));
.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
startActivity(Intent.createChooser(emailIntent, "Send email..."));
Aber es hängt nichts an, nur der Text des Körpers und alles andere geht.
Ich habe versucht, ein einzelnes Bild erhalten, indem die .putParcelableArrayListExtra
mit dieser Linie ersetzt
.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(form.getImageContainers().get(0).getImagePath())));
Und es tat das Bild anbringen, so kann ich das sagen, es ist nichts falsch mit dem String, der den Pfad speichert. Leider kann ich nicht durchgehen und nur diese Zeile für jedes Bild verwenden, da es nur das letzte verwendet (probierte es). Ich habe Antworten gelesen, die diese Methode verwenden, und andere, die Intent.ACTION_SEND_MULTIPLE
verwenden, aber das gibt mir eine leere Auswahl, die mir sagt, dass ich keine Apps habe, die die Aktion ausführen können.
Jeder Grund, warum es nicht funktioniert?
Gmail nicht mehrere unterstützen kann? –
@CodyHarness: Offensichtlich nicht, obwohl Sie Ihre Ursache helfen, wenn Sie 'setDataAndType()' aufrufen und den MIME-Typ Ihres Inhalts bereitstellen. Sie könnten versucht sein, 'setType()' stattdessen aufzurufen, aber das 'Uri', das Sie im Konstruktor bereitstellen, wird gelöscht. – CommonsWare