In diesem kurzen Tipp erfahren Sie, wie Sie die integrierte Mail-Anwendung starten, mit Daten versorgen und dem Benutzer das Senden einer E-Mail-Nachricht ermöglichen. Sie erreichen dies, indem Sie die entsprechende Absicht innerhalb der Aktivität einer Anwendung erstellen und konfigurieren.
Beginnen Sie mit dem Erstellen eines Android-Projekts. Implementieren Sie Ihre Android-Anwendung wie gewohnt. Wenn Sie ein Projekt eingerichtet und die Anwendung ausgeführt haben, entscheiden Sie, unter welchen Umständen Sie eine E-Mail-Anwendung starten möchten, und senden Sie eine E-Mail. Tritt dies auf, wenn ein Button-Steuerelement gedrückt wird? Möchten Sie die Details der E-Mail eingeben oder dem Benutzer dies einfach gestatten? Implementieren Sie die erforderliche Button- oder Menüsteuerung einschließlich der Klickbehandlung. Nachdem Sie diese Aufgabe ausgeführt haben, können Sie den Code zum Starten des E-Mail-Clients ablegen.
Wenn Sie einen Emulator verwenden, müssen Sie den E-Mail-Client konfigurieren. Wenn der E-Mail-Client nicht konfiguriert ist, reagiert er nicht auf die Absicht, über die wir sprechen werden. Wenn Sie die Auswahl in Aktion sehen möchten, müssen Sie ein Gerät mithilfe mehrerer Messaging-Anwendungen konfigurieren, z. B. der Google Mail-Anwendung und der E-Mail-Anwendung.
Nun können Sie mit diesem schnellen Tipp fortfahren.
Sie können auch mit dem für diesen kurzen Tipp bereitgestellten Open-Source-Code beginnen.
Mail-Anwendungen können gestartet werden, um eine Nachricht mit der folgenden Absicht zu senden: android.content.Intent.ACTION_SEND. Beginnen Sie mit dem Erstellen eines Intents dieses Typs in Ihrem Button-Click-Handler wie folgt:
Intent emailIntent = new Intent (android.content.Intent.ACTION_SEND);
Dies ist ein sehr allgemeiner Intent-Typ. Grundsätzlich teilt es dem Android-System mit, dass Ihre Anwendung irgendwo eine Art Nachricht senden möchte. Mit dem ACTION_SEND Intent können verschiedene Arten von Nachrichten gesendet werden, z , müssen Sie dem Intent einige zusätzliche Konfigurationsinformationen hinzufügen, damit das Android-Betriebssystem Ihre Anfrage richtig mit der entsprechenden Anwendung abgleichen kann.
Wenn Sie beispielsweise das Senden von Textdaten planen, legen Sie den Typ des Intent mithilfe der setType () - Methode wie folgt fest:
emailIntent.setType ("plain / text");
Auf einem typischen Gerät übernehmen die Messaging-Anwendung und die Mail-Anwendung im Allgemeinen das Senden von Nur-Text-Nachrichten.
Wenn Sie diesen Intent starten, können alle Anwendungen, die Nur-Text-Messaging unterstützen, diese Anforderung verarbeiten. Nachdem Sie die Typdaten für den Intent festgelegt haben, können Sie die startActivity () -Methode aufrufen und Ihren Intent übergeben:
startActivity (emailIntent);
Benutzer können eine beliebige Anzahl von Android-Anwendungen auf ihren Geräten installieren. Oft installieren sie mehrere Messaging-Anwendungen. Sie verfügen beispielsweise über separate persönliche E-Mail-Clients und geschäftliche E-Mail-Client-Anwendungen. Sie können dem Benutzer die Auswahl der Anwendung erlauben, die den Intent behandeln soll, indem Sie den Aufruf startActivity () mit der Methode createChooser () angeben:
startActivity (Intent.createChooser (emailIntent, "E-Mail senden in:"));
Dadurch wird der Benutzer aufgefordert, alle Anwendungen, die über einen Intent-Filter verfügen, der Ihrer ACTION_SEND-Klartextanforderung entspricht. Der Benutzer kann eine bestimmte Anwendung zum Starten auswählen.
Hinweis: Wenn genau eine Option verfügbar ist, wird diese direkt gestartet. Wenn keine Auswahlmöglichkeiten verfügbar sind, wird im Dialogfeld angezeigt, der Benutzer wird jedoch darauf hingewiesen, dass keine Auswahlmöglichkeiten vorhanden sind. Wenn es zwei oder mehr Auswahlmöglichkeiten gibt, erhält der Benutzer die Wahl, ohne die Option zur Auswahl einer Standardauswahl zu erhalten, da die Auswahl erzwungen wird.
Oft möchten Sie einige der E-Mail-Meldungsfelder mit Daten versehen, um dem Benutzer einige Eingaben zu ersparen. Sie möchten beispielsweise die E-Mail-Empfängerliste, den Betreff der Nachricht oder den Nachrichtentext festlegen. Sie können dies tun, indem Sie diese Informationen als Bestandteil der Intent-Extras angeben.
Mit dem folgenden Code wird der Intent erstellt, die Extras konfiguriert und die neue Aktivität gestartet:
Intent emailIntent = new Intent (android.content.Intent.ACTION_SEND); String aEmailList [] = "[email protected]", "[email protected]"; Zeichenfolge aEmailColliste [] = "[email protected]", "[email protected]"; String aEmailBCCList [] = "[email protected]"; emailIntent.putExtra (android.content.Intent.EXTRA_EMAIL, aEmailList); emailIntent.putExtra (android.content.Intent.EXTRA_CC, aEmailCCList); emailIntent.putExtra (android.content.Intent.EXTRA_BCC, aEmailBCCList); emailIntent.putExtra (android.content.Intent.EXTRA_SUBJECT, "Mein Betreff"); emailIntent.setType ("plain / text"); emailIntent.putExtra (android.content.Intent.EXTRA_TEXT, "Mein Nachrichtentext".); startActivity (emailIntent);
Wenn Sie nun den ACTION_SEND Intent starten, werden die Felder für den Benutzer ausgefüllt.
Ein Hinweis zu Berechtigungen: Obwohl Ihre Anwendung Messaging-Funktionen auf dem Gerät nutzt, sind keine derartigen Berechtigungen erforderlich. Dies liegt daran, dass die Anwendung selbst keine Nachrichten sendet. Stattdessen nutzen Sie einfach die Fähigkeiten anderer Anwendungen, um dies zu tun.
In diesem kurzen Tipp haben Sie erfahren, wie Sie einen Intent zum Starten und Senden einer E-Mail-Nachricht konfigurieren. Der Benutzer hat immer noch die endgültige Kontrolle darüber, ob die Nachricht gesendet werden soll oder nicht. Diese Funktion kann jedoch für Anwendungen sehr nützlich sein, die eine einfache Benutzerfeedback-Funktion oder eine enge Integration mit dem bevorzugten E-Mail-Client des Benutzers wünschen.
Die mobilen Entwickler Lauren Darcey und Shane Conder haben mehrere Bücher zur Android-Entwicklung mitgeschrieben: ein ausführliches Programmierbuch mit dem Titel Android Wireless-Anwendungsentwicklung und Sams TeachYourself Entwicklung von Android-Anwendungen in 24 Stunden. Wenn sie nicht schreiben, verbringen sie ihre Zeit damit, mobile Software in ihrem Unternehmen zu entwickeln und Beratungsdienste anzubieten. Sie können sie per E-Mail an [email protected], über ihren Blog unter androidbook.blogspot.com und über Twitter @androidwireless erreichen.