Eliminar un archivo de contentResolver sólo eliminar la entrada de la base de datos (no archivo)
Intento suprimir un archivo usando contentResolver pero suprimir solamente la entrada de la base de datos, no el archivo verdadero. Así que intento borrar primero la entrada y luego el archivo:
int rows = context.getContentResolver().delete( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, MediaStore.Audio.Media._ID + "=" + idSong, null); // Remove file from card if (rows != 0) { Uri uri = ContentUris.withAppendedId( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, idSong); File f = new File(uri.getPath()); if(!f.delete()) Log.d("fail-2", "fail-2"); } else Log.d("fail-1", "fail-1");
… y la salida es "fail-2". ¿Por qué?
- No puede solicitar permiso READ_EXTERNAL_STORAGE
- Android - Selector de imágenes no funciona en Kindle Fire?
- Obtener la lista de galerías de fotos en Android
- ¿Cómo puedo mostrar una carpeta específica en Android Gallery3D (cooliris)?
- Por qué Images.Media.insertImage devuelve null
¿Por qué ContentResolver no elimina el archivo real? ¿Esto es normal?
- Reproducir canción en el reproductor de música predeterminado - android
- Mediastore para Android: ¿Cómo recuperar de forma eficiente todas las canciones de un determinado género?
- ¿Cómo utilizar la consulta MediaStore para obtener los artistas sin duplicados?
- ¿Cuál es la diferencia entre el título y el nombre para mostrar
- ¿Cómo puedo actualizar MediaStore en Android?
- Android MediaStore insertVideo
- Cómo guardar la ruta de la imagen utilizando las preferencias compartidas
- ¿Por qué MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI no proporciona un "Artista de Álbum" preciso?
Esto está funcionando:
// Remove entry from database int rows = context.getContentResolver().delete( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, MediaStore.Audio.Media._ID + "=" + idSong, null); // Remove file from card if (rows != 0) { try { File f = new File(path); if (f.delete()) return true; } catch (Exception e) { Log.d("MusicDB", "file: '" + path + "' couldn't be deleted", e); return false; } } return false;
¿Pero por qué contentResolver no elimina el archivo ??
Parece que en 4.2, cero el archivo, pero no lo elimina. Realmente esperaba que lo eliminara del MediaStore y no lo borrara del sistema de archivos. De cualquier manera, esto parece ser un error de Android.
Me encuentro con un problema al actualizar un archivo. El problema que estoy teniendo es que el escáner de medios no está borrando la entrada antigua en la nueva búsqueda, por lo que terminan con dos entradas.
- La llamada getPicture () de PhoneGap no se guarda en la Galería en Android Phone
- Bloqueo de mutex NDK de Android