2016-11-10 4 views
0

У меня есть этот метод для показа одного изображения с моей SD-карты в Android студии:Android Studio - Невозможно декодировать поток (Отказано в)

public void showImage(){ 
    File imgFile = new File(Environment.getExternalStorageDirectory().getPath()+PATH+"Foto.jpg"); 
    if(imgFile.exists()){ 
     Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); 
     ivProfileImage.setImageBitmap(myBitmap); 
     Log.i("Image","The image exists!"); 
    } 
} 

Где ivProfileImage является ImageView и PATH является правильным. Я получаю это сообщение:

E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /storage/2673-1D16/ProfilePhotos/Foto.jpg: open failed: EACCES (Permission denied) 
I/Image: The image exists! 

И мои AndroidManifest.xml имеют права:

  • "android.permission.READ_EXTERNAL_STORAGE"
  • "android.permission.WRITE_EXTERNAL_STORAGE"

Я искал ответ, но никто не работает для меня. Есть идеи?

Заранее спасибо.

+0

https://stackoverflow.com/questions/32635704/android-permission-doesnt-work-even-if-i-have-declared-it Также обратите внимание, что ваш код предназначен для внешнее хранилище, не съемное хранилище. – CommonsWare

+0

Спасибо, я заметил его и исправлю добавление разрешения тоже. –

ответ

3

Вы должны проверить разрешение во время выполнения. Это новое в Android 6. Look here.

+0

Это сработало для меня. Огромное спасибо! –