2012-11-25 8 views
6

atar`getContentResolver() openInputStream (uri)` ı kullanıcı bir fotoğraf seçmek bildirmek için bu niyet kullanmak FileNotFoundException

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

Ama bazı FileNotFoundException atar android cihazlar.

uri değeri: atılmış

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

istisna:

java.io.FileNotFoundException: No such file or directory 

Ve bazı diğer android cihazlarda bu istisna olmayacağını çok garip. Bu hatayı ve bu hatayı nasıl düzeltecek? Yerel cihazda görüntüler için

cevap

2
MediaStore.Images.Media.INTERNAL_CONTENT_URI 

veya SD karta görüntüler için

MediaStore.Images.Media.EXTERNAL_CONTENT_URI 

.

Her ikisini de doğru adreslediğinizden emin misiniz? Dahili/harici tedavi, cihaza göre değişir, belki de bunun nedeni bazılarında değil, başkalarında çalışmaktadır.

+3

Sadece gerçek resimlerin silindiğinden, ancak fotoğraf görüntüleyici uygulamasında önbelleklerin bulunduğunu öğrendim. – Freewind

+0

Bilmekte fayda var, sorunla ilgili bir sorunu açıklayan bir şeye rastladım http://code.google.com/p/android/issues/detail?id=12508 – Shakti

+0

Doğru Freewind, bu tam kod/hata taraması vardı bir .txt dosyası için indirme klasörüm ve burada indirmeler ve ikisi de aynı boyutta, bir tanesi işe yaramadı. Teşekkürler! – tom

1

Aynı sorunla karşılaşıyorum ama ImageView'ın setImageURI yöntemini kullanarak çözdüm.

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

Basitçe aşağıdaki işlevi kullanın: Aşağıdaki kodu kullanmak zorunda değilsin

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

Kullanım Context.getContentResolver() openInputStream (Uri);.