2012-07-21 16 views

risposta

40

Questo funziona per me ...

Codice:

Uri selectedImageUri = data.getData(); 
selectedImagePath = getRealPathFromURI(selectedImageUri); 

Metodo: getRealPathFromURI()

//---------------------------------------- 
    /** 
    * This method is used to get real path of file from from uri 
    * 
    * @param contentUri 
    * @return String 
    */ 
    //---------------------------------------- 
    public String getRealPathFromURI(Uri contentUri) 
    { 
     try 
     { 
      String[] proj = {MediaStore.Images.Media.DATA}; 
      Cursor cursor = managedQuery(contentUri, proj, null, null, null); 
      int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
      cursor.moveToFirst(); 
      return cursor.getString(column_index); 
     } 
     catch (Exception e) 
     { 
      return contentUri.getPath(); 
     } 
    } 

EDIT:

Come ho notato in qualche dispositivo dopo l'immagine catturata i dati in onActivityResult() è nulla,

Quindi il modo alternativo, passare il nome del file immagine specifica come un argomento per il vostro intento per cattura l'immagine come parametro putExtra.

Quindi inserire anche questa immagine Uri in Media Store, ora utilizzare questo Uri per l'ulteriore uso,

È possibile verificare se l'immagine viene catturata o meno da File.exist(),

Codice assomiglia,

ContentValues values = new ContentValues(); 
values.put(MediaStore.Images.Media.TITLE, "Image File name"); 
Uri mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
Intent intentPicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
intentPicture.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI); 
startActivityForResult(intentPicture,ACTION_TAKE_PICTURE); 

Ora, è possibile utilizzare lo stesso metodo per il percorso del file ottenere da Uri,

in questo caso sarà in onActivityResult(),

selectedImagePath = getRealPathFromURI(mCapturedImageURI); // don't use data.getData() as it return null in some device instead use mCapturedImageUR uri variable statically in your code, 
+1

un enorme thanx tizio ...... la sua perfetta efficienza mybro –

+4

tranne se si utilizza un Samsung. –

+0

@OvidiuLatcu - Non l'ho provato su Samsung. Qual è il problema nel dispositivo Samsung che utilizza questo codice? – user370305

Problemi correlati