Share-Image-Datei aus dem cache-Verzeichnis Über intents~android
Ich versuche zu teilen, Bild-Datei im cache-Verzeichnis habe ich den kompletten Pfad, aber nicht in der Lage, senden Sie die Datei im Anhänge, der code ist
File shareImage=Utils.getBitmapFile();
Log.d("Activity", "get final path in result"+shareImage.getAbsolutePath());
/*MimeTypeMap mime = MimeTypeMap.getSingleton();
String ext=shareImage.getName().substring(shareImage.getName().lastIndexOf(".")+1);
String type = mime.getMimeTypeFromExtension(ext);
shareIntent.setType(type);
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/*");
Uri shareImageUri = Uri.fromFile(shareImage);
Uri shareImageUri = Uri.fromParts("content", shareImage.getAbsolutePath(), null);//("content://"+shareImage.getAbsolutePath());
*/
Uri shareImageUri = Uri.fromFile(shareImage);
Log.d("Result ","uri is "+shareImageUri.toString());
shareIntent.putExtra(Intent.EXTRA_STREAM, shareImageUri);
startActivity(Intent.createChooser(shareIntent, "Share Results"));
den oben kommentierten code nicht funktioniert
mail senden " zeigt die Anlage,aber nicht empfangen Ende gibt es keine Anlage,
facebook-sharing zeigt auch kein Bild im post
was der Grund für diese??
Habe ich bereits gesehen, die nach SO, dass Links how-to-use-Aktie-Bild-mit-sharing-intent-to-share-Bilder-im-android und viele andere, keiner von Ihnen sind in der Lage, das Problem zu beheben
P. S.;
1.Das Ziel ist, nehmen screenshot des Bildschirms speichern Sie im cache-Verzeichnis und teilen Sie Sie online von dort aus
2.Ja, ich habe die Datei, ich kann ziehen Sie es über DDMS aus dem Gerät und sehen auf system.
- Cache-Verzeichnis ein eigenes Verzeichnis für die app. Die sharing-app kann nicht auf die Datei zugreifen.
- Lesen Sie developer.android.com/guide/topics/data/..., Speichern von Dateien, die geteilt werden sollten
- Wenn Sie nicht möchten, verwenden Sie externe Speicherung, die Sie erstellen ein ContentProvider auf die Dateien zugreifen, wo immer Sie halten Sie (auch im cache-Verzeichnis der Werke)
- siehe stackoverflow.com/questions/14864707/... am SO, links zu stephendnicholas.com/archives/974 für Inhalte-Anbieter, aber das scheint nicht zu funktionieren als pro SO ein post!!!
- gefunden android dev blog für share-intents hier android-developers.blogspot.in/2012/02/share-with-intents.html, erklärt eine Menge
- Sie können kopieren Sie die Datei auf den externen cache und teilen Sie es auf diese Weise.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie bereits erwähnt, andere apps haben keinen Zugriff auf Ihre app in den internen Speicher.
Fühlen Sie sich frei, zu öffnen, eine frische StackOverflow-Frage, wo Sie erklären, vollständig und genau welche konkreten Lösungen Sie versucht haben, und welche speziellen Probleme Sie angetroffen haben.
Fühlen Sie sich frei, zu öffnen, eine frische StackOverflow-Frage, wo Sie erklären, vollständig und genau was", scheint nicht zu funktionieren" bedeutet.
Oder, verwenden Sie
FileProvider
, die diese Funktion bietet, ohne code benötigt darüber hinaus einen Eintrag für es in Ihrem manifest.Oder speichern Sie Ihre Bild auf externen Speicher, wie
getExternalCacheDir()
.Folgte ich @CommonsWare Ratschlag und verwendet eine FileProvider. Vorausgesetzt, Ihr Bild ist bereits in dem internen cache-Verzeichnis als
cache/images/image.png
, dann können Sie die folgenden Schritte aus. Diese sind meist eine Konsolidierung der Dokumentation.Einrichten der FileProvider im Manifest
Ersetzen
com.example.myapp
mit Ihrer app package name.Erstellen res/xml/filepaths.xml
Dieser erzählt die FileProvider wo bekommt man die Dateien zu teilen (unter Verwendung des cache-Verzeichnis in diesem Fall).
Teilen das Bild
Dokumentation
Teile ich die Cache-Bild gefolgt von Schritten .
1.Kopieren Sie Ihre zwischengespeicherte Bild auf Zielpfad.
2.Holen Sie sich die Uri der Datei kopieren.
3.Teilen Bild durch Vorsatz
sdcard
Verzeichnis aus starten.