2009-11-20 4 views

Antwort

27

Versuchen Sie, diese snippet:

/* Create the Intent */ 
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 

/* Fill it with Data */ 
emailIntent.setType("plain/text"); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject"); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Text"); 

/* Send it off to the Activity-Chooser */ 
context.startActivity(Intent.createChooser(emailIntent, "Send mail...")); 

Key Stücke: EXTRA_EMAIL für Ihre Adressen und die Verwendung createChooser() falls der Benutzer konfiguriert mehr als eine E-Mail-Client hat.

+3

Danke, das hat funktioniert :) Ich habe anfangs so etwas probiert, aber es hat nur einen Nachrichtenbildschirm angezeigt und nicht die E-Mail-App. Ich denke, das lag daran, dass ich zu der Zeit noch keinen E-Mail-Account im Emulator eingerichtet hatte. – scuba

+0

Was haben Sie mit dem endgültigen Keyword verwendet? Führt das zu einer Art von Optimierung, die mir nicht bewusst ist? – Scott

+0

Ich habe das Snippet nicht geschrieben. Ich persönlich hätte das endgültige Keyword dort wahrscheinlich nicht verwendet. – CommonsWare

3

Haben Sie versucht,

Intent intent = new Intent(
    Intent.ACTION_SENDTO, 
    Uri.parse("mailto:[email protected]") 
); 
startActivity(intent); 
+0

Gave it a shot, immer noch die Nachricht: Nicht unterstützte Aktion Diese Aktion wird derzeit nicht unterstützt. In einer Toast-ähnlichen Blase. Muss ich etwas im Manifest einrichten, damit meine App das nutzen kann? – scuba

1

Ich denke, die wirklichen Probleme hier sind, dass Sie auf dem offiziellen Emulator laufen und Ihre Absicht nichts zusammenbringt.

Von meinen Tests ist dies ein Problem, das passiert, wenn der URI des Intents (von setData()) mit nichts übereinstimmt und Sie auf einem der offiziellen Android-Emulatoren laufen. Dies scheint auf realen Geräten nicht zu passieren, also sollte es kein wirkliches Problem sein.

Sie diesen Code verwenden können, um festzustellen, wann diese, bevor Sie die Absicht starten passieren wird:

ComponentName emailApp = intent.resolveActivity(getPackageManager()); 
ComponentName unsupportedAction = ComponentName.unflattenFromString("com.android.fallback/.Fallback"); 
boolean hasEmailApp = emailApp != null && !emailApp.equals(unsupportedAction); 

(. Der Name der Aktivität, die die „Nicht unterstützte Aktion“ Aktion-Methode zeigt com.android.fallback.FallbackActivity ist)

Verwandte Themen