studio programacion para móviles español edición desarrollo desarrollar curso aprende aplicaciones android mediastore

para - manual programacion android español pdf



MediaStore-Uri para consultar todo tipo de archivos(medios y no medios) (1)

Es "external" o "internal" aunque los internos (archivos del sistema) probablemente no sean útiles aquí.

ContentResolver cr = context.getContentResolver(); Uri uri = MediaStore.Files.getContentUri("external"); // every column, although that is huge waste, you probably need // BaseColumns.DATA (the path) only. String[] projection = null; // exclude media files, they would be here also. String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "=" + MediaStore.Files.FileColumns.MEDIA_TYPE_NONE; String[] selectionArgs = null; // there is no ? in selection so null here String sortOrder = null; // unordered Cursor allNonMediaFiles = cr.query(uri, projection, selection, selectionArgs, sortOrder);

Si solo quieres .pdf puedes comprobar el tipo MIME

// only pdf String selectionMimeType = MediaStore.Files.FileColumns.MIME_TYPE + "=?"; String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension("pdf"); String[] selectionArgsPdf = new String[]{ mimeType }; Cursor allPdfFiles = cr.query(uri, projection, selectionMimeType, selectionArgsPdf, sortOrder);

En la clase MediaStore.Files clase, se menciona que,

Tabla del proveedor de medios que contiene un índice de todos los archivos en el almacenamiento de medios, incluidos los archivos que no son de medios.

Estoy interesado en consultar por archivos no multimedia como PDF.

Estoy usando CursorLoader para consultar la base de datos. El segundo parámetro para el constructor requiere un argumento Uri que sea fácil de obtener para los tipos de medios Audio, Images y Video, ya que cada uno de ellos tiene una constante EXTERNAL_CONTENT_URI e INTERNAL_CONTENT_URI definida para ellos.

Para MediaStore.Files no hay tal constante definida. Intenté usar el método getContentUri() pero no pude averiguar el valor del argumento para volumeName . Intenté dar "/ mnt / sdcard" y también el nombre del volumen que aparece cuando conecto el dispositivo a mi sistema pero en vano.

Vi una pregunta similar en los Grupos de Google, pero eso no se resuelve.

EDITAR: También intenté usar Uri.fromFile (nuevo archivo ("/ mnt / sdcard /")) y Uri.parse (nuevo archivo ("/ mnt / sdcard"). ToString ()) pero eso tampoco funcionó .