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)
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
Was haben Sie mit dem endgültigen Keyword verwendet? Führt das zu einer Art von Optimierung, die mir nicht bewusst ist? – Scott
Ich habe das Snippet nicht geschrieben. Ich persönlich hätte das endgültige Keyword dort wahrscheinlich nicht verwendet. – CommonsWare