Android Intent-Auswahl, um nur die E-Mail-Option anzuzeigen
Meine app integriert e-mail, wo kann der Benutzer einen Fehlerbericht Einreichen, feedback, etc. aus der app direkt. Ich bin mit dem application/octet-stream als SetType für die Absicht. Wenn Sie zum senden der e-mail, die Sie bekommen den content chooser, und es zeigt die verschiedenen Elemente, aus Evernote, Facebook, E-mail, etc.
Wie kann ich diese Auswahl nur E-mail-um nicht zu verwirren den Benutzer mit all diesen anderen Elemente, die passen den content chooser geben?
Danke.
InformationsquelleAutor der Frage Neal | 2011-06-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin davon ausgegangen, dass Sie mit der
ACTION_SEND
Intent
Aktion, da Sie störte nicht, um tatsächlich geben Sie an, was Sie verwenden, aber Sie vereinbart mit @Aleadam Kommentar.Nichts in diesem Satz Grenzen Dinge auf E-Mail.
ACTION_SEND
ist eine generischeIntent
Aktion, die unterstützt werden kann durch eine Anwendung, die will. Alles, was Sie tun, ist anzugeben, welche Daten Sie freigeben und für den MIME-Typ die Daten an-von dort aus ist es bis zu dem Benutzer, wählen Sie aus den verfügbaren Aktivitäten.Als @Jasoon zeigt, können Sie versuchen
message/rfc822
als MIME-Typ. Allerdings ist das kein Hinweis auf "nur bieten E-Mail-clients" - es bedeutet "etwas bieten, unterstütztmessage/rfc822
Daten". Das könnte leicht einige Anwendung, die nicht E-Mail-clients.Wenn Sie möchten gezielt etwas senden von E-Mail, Integration JavaMail, in Ihrer app, oder schreiben Sie uns eine E-Mail-Weiterleitung-Skript auf Ihren Webserver und rufen Sie es, oder so etwas. Wenn Sie
ACTION_SEND
Sie implizit besagt, dass es ist, was der Benutzer will, dass die Dinge, und Sie möchten, dass der Benutzer in der Lage sein zu senden, so-und-so Daten, was bedeutet, dass der Benutzer auswählt.InformationsquelleAutor der Antwort CommonsWare
Löste ich dieses Problem mit einfachen Zeilen code in der android-Dokumentation erklären (https://developer.android.com/guide/components/intents-common.html#Email)
Das wichtigste ist, die Flagge: es ist
ACTION_SENDTO
und nichtACTION_SEND
Andere wichtige Linie ist
Durch die Art und Weise, wenn Sie senden Sie eine leere
Extra
dieif()
am Ende nicht funktionieren und die app nicht starten, die E-Mail-client.Dies funktioniert für mich. Laut Android-Dokumentation. Wenn Sie sicherstellen möchten, dass Ihre Absicht ist es behandelt nur von einem E-Mail-app (und nicht andere text-messaging-oder social-apps), dann verwenden Sie die ACTION_SENDTO Aktion und auch das "mailto:" - Daten-Schema. Zum Beispiel:
InformationsquelleAutor der Antwort Pedro Varela
Nur sich mit diesem problem bei der Implementierung eines Magic-Link-Funktion, eine Auswahl Vorsatz für alle installierten E-Mail-apps:
Auswahl Vorsatz Screenshot
InformationsquelleAutor der Antwort Fisk Debug
Es ist ein Weg, mehr Generika zu tun, dass das arbeiten mit MIME-type.
Finden Sie in diesem Beitrag: Gewusst wie: anpassen von teilen intent in Android?
InformationsquelleAutor der Antwort Derzu
Es funktioniert auf allen Geräten. Es wird sich zeigen, nur E-Mail-Apps
InformationsquelleAutor der Antwort Sonia Rana
Ist es möglich, Schränken die Auswahl eines intent chooser, um nur ein paar Möglichkeiten. Der code in die Antwort auf diese Frage ist ein gutes Beispiel. Im Grunde müssten Sie zum erstellen einer Liste von LabeledIntents zur Verfügung zu stellen, die Absicht chooser, das wird dann in der Liste. Beachten Sie, dass diese Lösung funktioniert nicht über den Ausschluss (bestimmte apps sind ausgeschlossen, während der rest bleiben), sondern Sie müssen auswählen, welche apps angezeigt. Hoffe, es hilft!
InformationsquelleAutor der Antwort DudeSurfer
Es funktioniert auf allen Geräten.Es wird sich zeigen, nur E-Mail-Apps
InformationsquelleAutor der Antwort Sonia Rana
Lösung ist ganz einfach:
Finden Sie unter: http://www.gaanza.com/blog/email-client-intent-android/
InformationsquelleAutor der Antwort Volodymyr T