Ich speichere ein Bild auf der SD-Karte und es wird erst in der Galerie-Anwendung angezeigt, wenn ich die SD-Karte abziehe und sie zurückschicke.
Hast du eine Idee warum es so ist?
Scheint, als ob die Galerie-Anwendung einen Cache hat, der beim Speichern der Datei nicht aktualisiert wird ...
Eigentlich möchte ich auch das gerade gespeicherte Bild in der Galerie-Anwendung öffnen und habe damit keinen Erfolg.
Dies ist meine Frage zu diesem Problem.
Antworten:
Das System scannt die SD-Karte beim Mounten, um neue Image- (und andere) Dateien zu finden. Wenn Sie programmgesteuert eine Datei hinzufügen, können Sie diese Klasse verwenden:
http://developer.android.com/reference/android/media/MediaScannerConnection.html
quelle
Eine einfachere Lösung ist die Verwendung der statischen Komfortmethode scanFile () :
Wo
this
ist Ihre Aktivität (oder welcher Kontext auch immer), der MIME-Typ ist nur erforderlich, wenn Sie nicht standardmäßige Dateierweiterungen verwenden, und dernull
ist für den optionalen Rückruf (den wir für einen so einfachen Fall nicht benötigen).quelle
Meine Antwort auf die ursprüngliche Frage und auf alle anderen, die dieses Problem haben könnten:
Ich hatte das gleiche Problem: Bilder in meiner App, die auf der SD-Karte gespeichert wurden, wurden nicht sofort in ihrer Galerie angezeigt. Nach einigem Suchen fand ich diese eine Codezeile, die nach meinem Code "Auf SD-Karte speichern" eingefügt wurde und das Problem behoben hat:
quelle
Sie können der Mediengalerie auch absichtlich ein Bild hinzufügen. Sehen Sie sich den Beispielcode an, um zu sehen, wie es gemacht wird:
quelle
Uri
aber das Problem ist, dass das eingefügte Bild nicht in der Galerie angezeigt wird . Ich habe sowohl am Anfang als auch am Ende der Galerie nachgesehen. Können Sie bitte eine Methode vorschlagen, damit das eingefügte Bild sofort in der Galerie angezeigt wird?Galerie aktualisieren einschließlich Android KITKAT
quelle
Hier ist der Code für die MediaScannerConnection:
newfile ist das Dateiobjekt Ihrer neuen / gespeicherten Datei.
quelle
MyMediaConnectorClient
...Im Emulator befindet sich eine App mit der Aufschrift "Dev Tools".
Klicken Sie darauf und wählen Sie "Medienscannen". Alle Bilder werden gescannt
quelle
Lassen Sie Ihre Aktivität 'MediaScannerConnectionClient' implementieren und fügen Sie dies Ihrer Aktivität hinzu:
quelle
Uri
das Bild kennen, zum Beispiel:content://media/external/images/media/1231778
diese Arbeit mit mir
quelle
quelle
Hier teile ich Code, mit dem Bilder in Form einer Bitmap geladen und in der SD-Kartengalerie im Ordner mit den App-Namen gespeichert werden können. Sie sollten diese Schritte befolgen
quelle
Scheint bei KITKAT nicht zu funktionieren. Es löst eine Ausnahme für die Verweigerung von Berechtigungen aus und stürzt die App ab. Deshalb habe ich Folgendes getan:
Ich hoffe es hilft.
quelle
Verwenden Sie dies nach dem Speichern des Bildes
quelle
Mein Code für MyMediaConnectorClient:
quelle
Sie müssen der Galerie-App Berechtigungen erteilen. Drücken Sie einfach lange auf das Galerie-App-Symbol auf dem Startbildschirm und tippen Sie auf 'APP INFO', das oben auf dem Bildschirm angezeigt wird. Dadurch werden die Einstellungen der Galerie-App angezeigt. Gehen Sie nun zur Registerkarte Berechtigungen und aktivieren Sie den Speicher und die Kameraberechtigungen, indem Sie sie umschalten. Gehen Sie jetzt zu Ihrer nativen Galerie-App und Sie erhalten die gespeicherten Bilder.
quelle
Dies löst auch Ihr Problem, wenn Ihr Bild in der Galerie nicht angezeigt wird, sondern möglicherweise eine Bitmap vom Typ 404 in der Mitte angezeigt wird. Bitte fügen Sie die Tags in meinem Code zu Ihrem Bild hinzu, da einige Metadaten erforderlich sind, um das Bild in der Galerie anzuzeigen.
quelle
Versuchen Sie dieses, es wird über ein neu erstelltes Bild gesendet, so dass Ihr Bild sichtbar ist. in einer Galerie. Fotodatei durch tatsächlichen Dateipfad des neu erstellten Bildes ersetzen
quelle