2012-07-21 28 views
7

aşağıda benim kod ama onActivity sonucu bana görüntü yolunu vermeyeceksenizsadece kameradan çekilen Görüntü Yolu almak nasıl

Uri selectedImageUri = data.getData(); 
       selectedImagePath = getPath(selectedImageUri); 
       Log.w("jay", "Camera Image Path :" + selectedImagePath); 

       Toast.makeText(MiscansOther_pannel.this, selectedImagePath, 
         Toast.LENGTH_LONG).show(); 

cevap

40

Bu benim için çalışıyor ...

Kodu:

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

Yöntem: 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(); 
     } 
    } 

DÜZENLEME: onActivityResult() veri boş olduğunu yakalanan görüntüde sonra bazı cihazda fark gibi

,

Yani alternatif şekilde, Niyet bir argüman gibi belirli resim dosya adını iletin görüntüyü putExtra parametresi olarak yakala.

Sonra da Şimdi, Medya Store Bu resmi Uri eklemek için ileride kullanılmak üzere bu Uri kullanmak,

Sen görüntü yakalanan veya olmasın File.exist() tarafından olup olmadığını kontrol edebilir,

Kod benziyor

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); 

Şimdi, oolacak bu durumda Uri olsun dosya yolu için aynı yöntemi,

kullanabilirsiniz,

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

büyük teşekkürler dostum ...... onun mükemmel mybro –

+4

Bir Samsung kullanıyorsanız dışında çalışan. –

+0

@OvidiuLatcu - Samsung'da test etmedim. Bu cihazdaki Samsung cihazındaki sorun nedir? – user370305

İlgili konular