2010-02-01 29 views

risposta

42

Se si dispone di un File, è sempre possibile convertirlo in un URI:

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

Oppure, se si desidera utilizzare la classe Uri Android:

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

Grazie. In realtà, sto cercando Uri non URI, ma sono quasi gli stessi, quindi posso trovare una soluzione. – skysign

+0

Ah, non sapevo che intendessi la classe Uri specifica per Android. Ho aggiornato la mia risposta per includere anche quella. –

+0

Grazie per l'aggiornamento della risposta. – skysign

2

avevo stessa domanda per la mia attività di esploratore di file ... ma dovresti sapere che il contenuto per il file supporta solo i dati del media store come immagine, audio e video .... Ti sto dando per ottenere il contenuto di immagini uri dalla selezione di un'immagine da sdcard .... prova questo codice ... potrebbe funzionare per te ...

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; 
      } 
     } 
    } 
Problemi correlati