3 votos

Eliminación de imágenes a través de adb - Sin embargo, permanecen en la Galería

Estoy intentando escribir un script para probar una cámara durante largos periodos de tiempo, y uno de los problemas ahora mismo es el hecho de que se queda sin espacio cuando se toman las fotos. Mi planteamiento inicial es eliminar la imagen mediante adb después de su toma. El problema es que, incluso después de eliminarla de la ubicación en la que está guardada, sigue siendo visible en la galería, y supongo que está ocupando espacio en alguna parte. Las propiedades asociadas a ella (como la anchura, la altura, la información de flash, etc.) también se eliminan, excepto el tamaño.

Lo que estoy haciendo actualmente es borrar todos los archivos en el directorio DCIM (donde la cámara guarda las fotos) después de cada vez que se toma una foto, usando adb. Además, cuando busco en todo el teléfono usando adb, no puedo encontrar nada similar a las fotos en cualquier lugar de la estructura de archivos.

¿Es posible borrar completamente las imágenes usando adb? ¿Existe un caché donde se almacenan las imágenes en algún lugar? La única forma en que puedo conseguir que las imágenes se eliminen completamente del teléfono es reiniciando, o usando monkey runner para eliminar las imágenes a través de toques simulados en la galería (lo cual es tedioso para un gran # de fotos).

2voto

Nick Pierpoint Puntos 7976

La razón por la que las imágenes permanecen visibles en la Galería es porque el MediaScanner de Android es un poco débil en este sentido. Lo que ocurre es lo siguiente: cuando Android arranca, ejecuta el MediaScanner, que se va y comprueba todas las imágenes, tonos de llamada, audio para resumir, y mantiene la pestaña en él. Esto sólo se hace una vez en el arranque .

Puedes evitarlo desmontando la tarjeta SD, hazlo de forma segura (Ajustes > Almacenamiento > Desmontar tarjeta SD), esto tardará unos segundos, una vez desmontada, puedes sacar la tarjeta SD, volver a meterla, esto a su vez forzará a MediaScanner a ejecutarse de nuevo, y entonces todas las imágenes que hayas borrado ya no estarán en la Galería.

MediaScanner es un servicio que actúa como servicio de caché en el sentido de que almacena en caché todos los medios (imágenes/audio). En algunas ROMs, hay una facilidad para forzar su ejecución sin tener que hacer lo anterior.

1voto

Lie Ryan Puntos 15629

Pruebe las soluciones propuestas en este Correo electrónico: . En resumen, uno de ellos puede desencadenar la exploración de los medios de comunicación:

  1. Enviar una transmisión Intento ACTION_MEDIA_MOUNTED . Tenga en cuenta que es posible enviar una intención a través de ./adb shell am .
  2. Ejecutar el Rescan Media aplicación
  3. Cambiar el nombre de un archivo
  4. Tomar una foto a través de la aplicación Cámara
  5. Montaje de la tarjeta SD
  6. Reiniciando

0voto

nocley Puntos 123

Mientras que otras respuestas han dado buenas soluciones para este problema, la mayoría de ellos parecen no funcionar correctamente en ICS. El único método seguro para borrar todas las imágenes era el siguiente:

  1. Eliminar todos los archivos de la carpeta DCIM
  2. Borrar datos para la galería
  3. Borrar datos para el almacenamiento de medios
  4. Mata tanto a la Galería como a Android.process.media

He tratado de conseguir estos en un script, el problema es con 3 - como el almacenamiento de los medios de comunicación no da su nombre de proceso, y como tal no puedo borrar los datos a través de 'adb shell pm clear processname' para él.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X