Frage

Ich habe für das Senden von E-Mail eine Absicht zum Erstellen von verschiedenen Themen hier und anderswo zu finden und das scheint ziemlich einfach zu sein. Ich bin für eine Absicht der Suche zu starten, einfach jeden E-Mail-Client des Benutzer haben könnte.

Hier ist der Code, den ich für das Senden einer E-Mail gesehen haben ( geschrieben gerade als Referenz, das ist nicht meine Bedürfnisse nicht dienen, wie ich eine neue Nachricht nicht senden möchten ):

Intent i = new Intent(Intent.ACTION_SEND); 
i.setType("text/plain"); 
i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"recipient@example.com"}); 
i.putExtra(Intent.EXTRA_SUBJECT, "Subject of the message"); 
i.putExtra(Intent.EXTRA_TEXT   , "Body of the message"); 

Hier ist der Code, den ich speziell zusammengestellt für die Google Mail-Client von Paketnamen starten:

PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage("com.google.android.gm");
startActivity(intent);

Der obige Code funktioniert, aber ist nicht flexibel, dass ein Benutzer nicht Google Mail verwenden kann, aber die anderen integrierten E-Mail-Anwendung oder einen 3rd-Party-E-Mail-App. Ich bin für eine Absicht suchen, der die Auswahl in diesem Fall bringen würde, damit der Benutzer entscheiden kann, welche App zu starten E-Mail zu lesen.

Wer weiß, wie dies zu erreichen?

War es hilfreich?

Lösung

Wer weiß, wie zu tun das?

Es gibt keine solche Intent -. Sie können dies sagen, durch das Manifest für die E-Mail-Anwendung Prüfung

Das einzige, was Sie tun können, ist zu bauen selbst eine Liste von E-Mail-Clients, die Sie Link möchten und verwenden Sie den Code PackageManager Sie oben für jeden zeigen.

Andere Tipps

Kann ein mailto-URL in irgendeiner Art und Weise verwendet werden, um dies zu erreichen? --Bearbeiten-- Ich konnte dies mit dem folgende Codebeispiel erreichen:

mt = MailTo.parse("mailto:yourname@gmail.com");
sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{mt.getTo()});
sendIntent.putExtra(Intent.EXTRA_TEXT, "");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Enter a subject");
sendIntent.setType("message/rfc822");
startActivity(Intent.createChooser(sendIntent, "Send a Message:"));

Ein weiterer Ansatz könnte Intent.createChooser () sein; und lassen Sie den Benutzer die richtige Anwendung zu wählen.

BTW könnte Die Liste enthält nicht nur eine E-Mail-Anwendungen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top