2012-11-25 14 views
6

फेंकता मैं इस आशय का उपयोग उपयोगकर्ता एक तस्वीर का चयन करने के लिए:`getContentResolver() openInputStream (URI)` FileNotFoundException

Intent intent = new Intent(Intent.ACTION_PICK, 
          MediaStore.Images.Media.INTERNAL_CONTENT_URI); 
startActivityForResult(intent, INTENT_SELECT_PHOTO); 

और onActivityResult में:

Uri uri = data.getData(); 
InputStream inputStream = getContentResolver().openInputStream(uri); 

लेकिन यह कुछ पर FileNotFoundException फेंकता एंड्रॉइड डिवाइस।

uri का मूल्य:

content://media/external/images/media/26467 

अपवाद:

java.io.FileNotFoundException: No such file or directory 

और यह बहुत अजीब बात है कि यह कुछ अन्य Android उपकरणों पर इस अपवाद फेंक नहीं होंगे। इस त्रुटि का कारण क्या होगा और इसे कैसे ठीक किया जाए?

उत्तर

2
MediaStore.Images.Media.INTERNAL_CONTENT_URI 

स्थानीय डिवाइस पर छवियों के लिए या

MediaStore.Images.Media.EXTERNAL_CONTENT_URI 

एसडी कार्ड पर छवियों के लिए।

क्या आप वाकई दोनों सही ढंग से संबोधित कर रहे हैं? आंतरिक/बाहरी उपचार डिवाइस के साथ भिन्न होता है, शायद यही कारण है कि यह कुछ पर काम करता है लेकिन दूसरों पर नहीं।

+3

मुझे अभी पता चला है क्योंकि वास्तविक छवियां हटा दी गई हैं, लेकिन उनके पास फोटो व्यूअर एप्लिकेशन में कैश हैं। – Freewind

+0

जानना अच्छा है, समस्या की तलाश में मैंने कुछ ऐसी चीज में भाग लिया जो संबंधित समस्या बताता है http://code.google.com/p/android/issues/detail?id=12508 – Shakti

+0

राइट फ्रीवाइंड, मेरे पास यह सटीक कोड/त्रुटि ब्राउज़िंग था एक .txt फ़ाइल के लिए मेरा डाउनलोड फ़ोल्डर और वहां डाउनलोड करने के लिए और दोनों एक ही आकार के थे, एक काम किया था जो नहीं किया था। धन्यवाद! – tom

1

मुझे एक ही समस्या का सामना करना पड़ा, लेकिन मैंने ImageView की setImageURI विधि का उपयोग कर इसे हल किया।

आप न निम्नलिखित कोड का उपयोग करने के लिए है:

InputStream inputStream = getContentResolver().openInputStream(uri); 

आप निम्नलिखित समारोह का उपयोग करें:

imageViewCustomer.setImageURI(data.getData()); 
-1

उपयोग Context.getContentResolver() openInputStream (उरी);।

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