Ich versuche, einen Screenshot der Anwendung mit dem folgenden Code zu teilen:
%Vor%Logcat:
%Vor%Das Problem: Wenn ich versuche, mit Google Mail zu teilen, wird Google Mail geschlossen. Wenn ich versuche, Facebook mitzuteilen, lehnt Facebook den Beitrag stillschweigend ab. Messaging bringt den Messenger, ist aber leer. Die Freigabe funktioniert, ohne das Bild hinzuzufügen.
Verwenden Sie als Erstes niemals die Verkettung, um Dateipfade zu erstellen, geschweige denn Uri
-Werte.
Zweitens sollte EXTRA_STREAM
eine Uri
enthalten, nicht eine String
.
Drittens, da Sie den richtigen MIME-Typ ( image/png
) kennen, verwenden Sie ihn anstelle eines Platzhalters.
Viertens, baue niemals den gleichen Pfad zweimal. Hier erstellen Sie File image
auf die richtige Weise und ignorieren diesen Wert.
Lassen Sie also die String url
-Zeile aus, ersetzen Sie image/*
durch image/png
und ändern Sie:
zu sein:
%Vor%Ziehen Sie auch die Verwendung der Klasse android.support.v4.content.FileProvider in Betracht, um Ihre Datei mit einem Inhalts-URI anstelle eines Datei-URIs zu teilen. Es ist sicherer. Weitere Informationen finden Sie in der Referenzdokumentation für FileProvider
Sie müssen die Inhalts-URI ständig weitergeben (zumindest in Android 5.1 und höher). Hier erfahren Sie, wie Sie einen Inhaltspfad aus einer Bitmap erhalten:
%Vor%Und dann teilen:
%Vor%Tags und Links android android-intent android-sdcard android-sharing