奇妙な問題が発生しています。ユーザーがボタンをクリックして画像を選択しています。次に、エンコードされたパスをdbに保存し、後で取得するため、別のアクティビティで画像を表示しますが、次の例外が発生します
09-14 01:39:36.195: W/System.err(2241): java.io.FileNotFoundException: No content provider: /external/images/media/1113
09-14 01:39:36.195: W/System.err(2241): at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:610)
09-14 01:39:36.195: W/System.err(2241): at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:542)
09-14 01:39:36.195: W/System.err(2241): at android.content.ContentResolver.openInputStream(ContentResolver.java:377)
私のボタンOnClick&dbコードに保存:
Uri selectedImage = imageReturnedIntent.getData();
InputStream imageStream;
try {
imageStream = getContentResolver().openInputStream(selectedImage);
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream, null, options );
ivPictureChosen.setImageBitmap(yourSelectedImage);
storeEncodedImageInDb(selectedImage.getEncodedPath());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(this, "Couldn't pick image", Toast.LENGTH_SHORT).show();
}
私の検索と画像コードの表示:
String imagePath = db.getEncodedImage();
if(imagePath.length()>0){
Uri mainImgeUri = Uri.parse(imagePath);
InputStream imageStream;
try {
imageStream = getContentResolver().openInputStream(mainImgeUri);
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream, null, options );
mainImage.setImageBitmap(yourSelectedImage);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
そもそもエンコードされたパスなのにファイルが見つからないのはなぜですか?