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?

0voto

Ali Hasan Punkte 613

Anko verwenden - kotlin

context.email(email, subject, body)

0voto

A. Ferrand Punkte 588

Mit Kotlin, arbeitet mit Gmail :

val i = Intent(Intent.ACTION_SENDTO).apply {
    type = "text/html"
    data = Uri.parse("mailto:")
    putExtra(Intent.EXTRA_EMAIL, arrayOf(email))
    putExtra(Intent.EXTRA_SUBJECT, subject)
    putExtra(Intent.EXTRA_TITLE, subject)
}
if (packageManager != null && i.resolveActivity(packageManager) != null) {
    startActivity(i)
}

Wenn jemand eine Lösung findet, um die Nachricht auch anzuzeigen...

0voto

remain4life Punkte 1121

Manchmal müssen Sie die Standard-E-Mail-Anwendung öffnen, um den Posteingang zu sehen, ohne einen neuen Brief zu erstellen; in diesem Fall ist dies hilfreich:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_APP_EMAIL);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (intent.resolveActivity(getPackageManager()) != null) {
    startActivity(intent);
}

0voto

Halten Sie sich genau daran und Sie sollten keine Probleme haben.

https://developer.Android.com/guide/components/intents-common#ComposeEmail

stellen Sie sicher, dass Sie bei der Verwendung von ACTION_SENDTO ein Array im Feld EXTRA_EMAIL übergeben

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