En Android: Cómo puedo volver a explorar una carpeta completa para ver los cambios en .nomedia
Así que mi aplicación descarga imágenes a petición de los usuarios desde una fuente en línea. A través de un botón en la actividad, el usuario puede elegir ocultar o mostrar las imágenes en la galería. Esto es bastante fácil, solo agrego o elimino un archivo .nomedia según sea necesario. Sin embargo, quiero volver a digitalizar los medios de comunicación cada vez para que el cambio sea instantáneo, y no requiere ninguna interacción adicional del usuario.
Después de descargar cada imagen, estoy usando el método en http://www.mail-archive.com/[email protected]/msg24164.html para escanear la imagen específica en la biblioteca. Eso funciona muy bien para una imagen, pero cuando se agrega el archivo .nomedia, realmente necesito poder escanear un directorio completo.
- ¿Cómo puedo obtener la ruta de la tarjeta SD externa para Android 4.0 y versiones posteriores?
- Buscar etiqueta de volumen de la tarjeta SD en Android
- Abra todas las imágenes de una carpeta (tarjeta SD) al mismo tiempo, haga clic en el botón
- IllegalStateException al grabar un video en una tarjeta SD externa con el nuevo Storage Access Framework (SAF)
- Cambiar android: installLocation de preferExternal a internalOnly
He considerado la posibilidad de llamar a MediaScannerNotifier en cada imagen en el directorio, pero que sólo parece torpe y perezoso.
¿Consejo?
- Lista todas las imágenes de la tarjeta SD.
- ¿Existe alguna convención para el almacenamiento de tarjetas SD de Android?
- Android obtiene imágenes de sdcard
- ¿Cómo crear un directorio en Android?
- Java.Lang.RuntimeException, setParameters falló en la versión de android (4.1.1)
- ¿TODOS los dispositivos Android tienen una tarjeta SD interna?
- ¿Cómo puedo extraer todos los archivos de una carpeta presente en la tarjeta SD
- Cómo obtener el nombre de archivo de la ruta del archivo en android
Finalmente lo encontró en http://groups.google.com/group/android-developers/browse_thread/thread/c1a385226f3df482 .
Es una sola línea:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse ("file://" + Environment.getExternalStorageDirectory())));
am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///mnt/sdcard
Este comando se puede utilizar para actualizar la tarjeta SD sin reiniciar el dispositivo
También se puede invocar desde el shell:
am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///mnt/sdcard
- Cómo agregar varios encabezados con ok Http
- SimpleXML con Retrofit 1.9, 'Atributo' versión 'no tiene una coincidencia en la clase'