Guardo una imagen en la tarjeta sd y no aparece en la aplicación Galería hasta que saco la tarjeta sd y la devuelvo.
¿Tienes idea de por qué es así?
Parece que la aplicación Galería tiene un caché que no se actualiza al guardar el archivo ...
En realidad, también quiero abrir la imagen recién guardada en la aplicación Galería y no tengo éxito con eso.
Esta es mi pregunta sobre este problema.
Respuestas:
El sistema escanea la tarjeta SD cuando está montada para encontrar nuevos archivos de imagen (y otros). Si está agregando un archivo mediante programación, puede usar esta clase:
http://developer.android.com/reference/android/media/MediaScannerConnection.html
fuente
Una solución más simple es utilizar el método de conveniencia estático scanFile () :
dónde
this
está su actividad (o cualquier contexto), el tipo mime solo es necesario si está utilizando extensiones de archivo no estándar ynull
es para la devolución de llamada opcional (que no necesitamos para un caso tan simple).fuente
Mi respuesta a la pregunta original y a cualquier otra persona que pueda tener este problema:
Estaba teniendo el mismo problema, las imágenes en mi aplicación que las personas guardaban en la tarjeta SD no aparecían en su Galería de inmediato. Después de buscar, encontré esta línea de código insertada después de mi código 'guardar en tarjeta sd' que solucionó el problema:
fuente
También puede agregar una imagen a la Galería de medios por intención, eche un vistazo al código de ejemplo para ver cómo se hace:
fuente
Uri
pero el problema es que la imagen insertada no se muestra en la galería. He comprobado tanto al principio como al final de la galería. ¿Puede sugerir algún método para que la imagen insertada se muestre en la galería inmediatamente?Actualización de la galería que incluye Android KITKAT
fuente
Aquí está el código para MediaScannerConnection:
newfile es el objeto Archivo de su archivo nuevo / guardado.
fuente
MyMediaConnectorClient
...hay una aplicación en el emulador que dice: 'Herramientas de desarrollo'
haga clic en eso y seleccione 'Escaneo de medios' .. todas las imágenes serán escaneadas
fuente
Deje que su actividad implemente 'MediaScannerConnectionClient' y agregue esto a su actividad:
fuente
Uri
de la imagen, por ejemplo:content://media/external/images/media/1231778
este trabajo conmigo
fuente
fuente
Aquí estoy compartiendo un código que puede cargar una imagen en forma de mapa de bits y guardar esa imagen en la galería de tarjetas SD en la carpeta del nombre de la aplicación. Debes seguir estos pasos
fuente
No parece funcionar en KITKAT. Lanza una excepción de denegación de permiso y bloquea la aplicación. Entonces, para esto, hice lo siguiente,
Espero eso ayude.
fuente
Use esto después de guardar la imagen
fuente
Mi código para MyMediaConnectorClient:
fuente
Debe otorgar permisos a la aplicación Galería. Simplemente mantenga presionado el ícono de la aplicación de la galería en la pantalla de inicio y toque 'INFORMACIÓN DE LA APLICACIÓN' que aparece en la parte superior de la pantalla. Al hacerlo, se mostrará la configuración de la aplicación de la galería. Ahora vaya a la pestaña Permisos y habilite el almacenamiento, los permisos de la cámara alternándolos. Ahora vaya a su aplicación de galería nativa y obtendrá las imágenes guardadas.
fuente
Esto también resolverá su problema si su imagen en la galería no se muestra en su lugar, podrían mostrar un mapa de bits de tipo 404 en el medio. agregue las etiquetas que están en mi código con su imagen porque debe haber algunos metadatos para mostrar la imagen en la galería.
fuente
Pruebe este, se transmitirá sobre una nueva imagen creada, para que su imagen sea visible. dentro de una galería. photoFile reemplazar con la ruta del archivo real de la imagen recién creada
fuente