2 Stimmen

Wählen Sie ein Programm zum Senden von E-Mails aus.

Ich habe diesen Code, um E-Mails zu versenden:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{MyApp.sInstance.ErrorsMail});
intent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.Proposal));
//intent.setType("plain/text");
intent.setType("message/rfc822");
startActivity(Intent.createChooser(intent, getString(R.string.SendEmail)));

Leider zeigt es mir nicht nur E-Mail-Anwendungen an: Skype, FTP, GoogleDrive, GMail

Wie kann ich die Liste auf E-Mail-Clients beschränken?

UPDATE:

Hinzufügen von

intent.setData(Uri.parse("mailto:"));

Ich erhalte: "Keine App kann diese Aktion ausführen".

1voto

user370305 Punkte 106676

Eigentlich in Ihrem Intent..

ACTION_SEND ist eine generische Intent-Aktion, die von jeder Anwendung unterstützt werden kann, die möchte. Alles, was Sie tun müssen, ist anzugeben, welche Daten Sie teilen, und der MIME-Typ dieser Daten - von dort aus liegt es am Benutzer, aus verfügbaren Aktivitäten zu wählen.

Der einzige Weg ist ein Hack für die Verwendung von Explizitem Intent mit dem tatsächlichen Wissen über Paketnamen für die E-Mail-Anwendung und welche Art von ACTION sie darauf antwortet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X