2012-07-21 11 views
7

नीचे मेरी कोड है, लेकिन मुझे onActivity परिणाम में छवि पथ देना नहीं हैकैसे सिर्फ कैमरे से कब्जा कर लिया छवि पथ पाने के लिए

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

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

उत्तर

40

यह मेरे लिए काम करता ...

कोड:

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

विधि: 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(); 
     } 
    } 

संपादित करें:

जैसा कि मैंने कुछ डिवाइस पर कब्जा कर लिया छवि के बाद onActivityResult() में डेटा अशक्त है में देखा,

तो वैकल्पिक तरीका, के लिए अपने इरादे के लिए एक तर्क के रूप में विशिष्ट छवि फ़ाइल नाम दर्रा छवि को putExtra पैरामीटर के रूप में कैप्चर करें।

फिर भी, मीडिया स्टोर में इस छवि को उरी डालने अब आप अपने आगे उपयोग के लिए इस उरी का उपयोग करें,

आप देख सकते हैं छवि या कब्जा कर लिया File.exist() द्वारा नहीं है कि,

कोड, की तरह लग रहा

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

अब, आप इस मामले में उरी से प्राप्त फ़ाइल पथ के लिए एक ही विधि,

उपयोग कर सकते हैं यहमें होगा,

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

एक विशाल thanx दोस्त ...... इसकी पूरी तरह से mybro –

+4

आप एक सैमसंग उपयोग कर रहे हैं को छोड़कर काम कर रहे। –

+0

@OvidiuLatcu - मैंने सैमसंग पर इसका परीक्षण नहीं किया। इस कोड का उपयोग कर सैमसंग डिवाइस में समस्या क्या है? – user370305

संबंधित मुद्दे

 संबंधित मुद्दे