683 Stimmen

Intention zum Senden einer E-Mail

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/html");
intent.putExtra(Intent.EXTRA_EMAIL, "emailaddress@emailaddress.com");
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, "I'm email body.");
startActivity(Intent.createChooser(intent, "Send Email"));

Der obige Code öffnet ein Dialogfeld mit den folgenden Anwendungen: Bluetooth, Google Docs, Yahoo Mail, Gmail, Orkut, Skype usw.

Eigentlich möchte ich diese Listenoptionen filtern. Ich möchte nur E-Mail-bezogene Anwendungen anzeigen, z. B. Gmail und Yahoo Mail. Wie kann ich das tun?

Ich habe ein solches Beispiel in der Anwendung "Android Market" gesehen.

  1. Öffnen Sie die Android Market-App
  2. Öffnen Sie eine Anwendung, bei der der Entwickler seine E-Mail-Adresse angegeben hat. (Wenn Sie eine solche Anwendung nicht finden können, öffnen Sie einfach meine Anwendung: market://details?id=com.becomputer06.vehicle.diary.free, ODER suchen Sie nach 'Vehicle Diary')
  3. Scrollen Sie nach unten zu 'DEVELOPER'.
  4. Klicken Sie auf 'E-Mail senden'.

Der Dialog zeigt nur E-Mail-Apps an, z. B. Gmail, Yahoo Mail usw. Bluetooth, Orkut, etc. werden nicht angezeigt. Welcher Code erzeugt einen solchen Dialog?

1voto

Mahen Punkte 730

Dieser Code funktioniert auf meinem Gerät

Intent mIntent = new Intent(Intent.ACTION_SENDTO);
mIntent.setData(Uri.parse("mailto:"));
mIntent.putExtra(Intent.EXTRA_EMAIL  , new String[] {"mahendrarajdhami@gmail.com"});
mIntent.putExtra(Intent.EXTRA_SUBJECT, "");
startActivity(Intent.createChooser(mIntent, "Send Email Using..."));

1voto

Darksymphony Punkte 1271

Auch mit ACTION_VIEW gibt es eine einfache Lösung:

  Intent intent = new Intent(Intent.ACTION_VIEW);
        Uri data = Uri.parse("mailto:customer@something.com?subject=Feedback");
        intent.setData(data);
        startActivity(intent);

1voto

Haris Punkte 236

Ich habe fast alle Antworten hier auf Android 11 verwendet, aber sie haben nicht richtig funktioniert. einige von ihnen nicht die mailto auf seine erforderlichen Feld platzieren und einige andere nicht einmal überhaupt funktionieren. so habe ich die neue Dokumentation gelesen und gefunden, dass mailto E-Mails in einem Array sein sollte, so was für mich gearbeitet schließlich ist hier. Wie auch immer, danke für alle Antworten, sie haben doch geholfen.

//mail me
findViewById<TextView>(R.id.mailme).setOnTouchListener { _, _ ->
    try {
        val mail: Array<String> = arrayOf("somemail@cc.com")
        val mailme = Intent(Intent.ACTION_SENDTO).apply {
            data = Uri.parse("mailto:")
            putExtra(Intent.EXTRA_EMAIL, mail)
            putExtra(Intent.EXTRA_TEXT, "Hey We Need Your Help With This Issue.")
            putExtra(Intent.EXTRA_SUBJECT, "At Logs Calculator, We Need Your Help !")
        }
        startActivity(mailme)
    } catch (e: Exception) {
        e.printStackTrace()
    }
    true
}

1voto

sianis Punkte 598

Vielleicht sollten Sie dies versuchen: intent.setType("plain/text");

Ich fand es ici . Ich habe es in meiner App verwendet und es zeigt nur die Optionen E-Mail und Gmail an.

1voto

grasshopper Punkte 21

Ich verwende das hier, und es funktioniert bei mir:

//variables
String subject = "Whatever subject you want";
String body = "Whatever text you want to put in the body";
String intentType = "text/html";
String mailToParse = "mailto:";

//start Intent
Intent variableName = new Intent(Intent.ACTION_SENDTO);
variableName.setType(intentType);
variableName.setData(Uri.parse(mailToParse));
variableName.putExtra(Intent.EXTRA_SUBJECT, subject);
variableName.putExtra(Intent.EXTRA_TEXT, body);

startActivity(variableName);

So kann der Benutzer auch seine bevorzugte E-Mail-Anwendung auswählen. Das Einzige, was Sie damit nicht tun können, ist, die E-Mail-Adresse des Empfängers festzulegen.

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