2010-02-01 15 views

Respuesta

42

Si usted tiene un File, siempre se puede convertirlo en un URI:

File file = new File(path + File.pathSeparator + filename); 
URI uri = file.toURI(); 

O, si desea utilizar la clase Android Uri:

Uri uri = Uri.fromFile(file); 
+0

Gracias. En realidad, estoy buscando URI no URI, pero son casi iguales, así que puedo encontrar una solución. – skysign

+0

Ah, no sabía que se refería a la clase específica de Uri de Android. He actualizado mi respuesta para incluir eso también. –

+0

Gracias por la actualización de la respuesta. – skysign

2

tuve misma pregunta para mi actividad de explorador de archivos ... pero debe saber que el contenido de archivo solo admite los datos del mediatore como imagen, audio y video .... Le doy la oportunidad de obtener contenido de imagen uri al seleccionar una imagen desde sdcard .... prueba este código ... puede ser que funcione para ti ...

public static Uri getImageContentUri(Context context, File imageFile) { 
     String filePath = imageFile.getAbsolutePath(); 
     Cursor cursor = context.getContentResolver().query(
       MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
       new String[] { MediaStore.Images.Media._ID }, 
       MediaStore.Images.Media.DATA + "=? ", 
       new String[] { filePath }, null); 
     if (cursor != null && cursor.moveToFirst()) { 
      int id = cursor.getInt(cursor 
        .getColumnIndex(MediaStore.MediaColumns._ID)); 
      Uri baseUri = Uri.parse("content://media/external/images/media"); 
      return Uri.withAppendedPath(baseUri, "" + id); 
     } else { 
      if (imageFile.exists()) { 
       ContentValues values = new ContentValues(); 
       values.put(MediaStore.Images.Media.DATA, filePath); 
       return context.getContentResolver().insert(
         MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
      } else { 
       return null; 
      } 
     } 
    } 
Cuestiones relacionadas