Невозможно загрузить изображение с устройства, используя glide в Android 10 (Q) - PullRequest
0 голосов
/ 20 января 2020

Glide не загружает изображение, выбранное из галереи. Это всегда показывает следующую ошибку, несмотря на предоставление разрешения на запись и чтение.

 java.io.FileNotFoundException: /storage/emulated/0/Pictures/JPEG_20200120103701_3365226945725752825.jpg: open failed: EACCES (Permission denied)

Ответы [ 3 ]

1 голос
/ 20 января 2020

Добавить эту строку android манифест

android: requestLegacyExternalStorage = "true"

0 голосов
/ 20 января 2020

Создание экземпляра файла и передача URI файла, который вы хотите загрузить в ImageView. Вы также можете использовать RequestListener для отслеживания ошибки в случае сбоя

 Glide.with(context)
        .load(new File(fileUri.getPath())) // Uri of the picture
        .into(imageview)
        .listener(new RequestListener<String, GlideDrawable>() {
        @Override
        public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
            Log.e("xmx1","Error "+e.toString());
            return false;
        }

        @Override
        public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
            Log.e("xmx1","no Error ");
            return false;
        }
    });

Убедитесь, что вы добавили

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

внутри тега вашего приложения `` `

<application
android:name=".App"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:requestLegacyExternalStorage="true"
... >
0 голосов
/ 20 января 2020

Ни одно приложение "Галерея" не даст вам этот путь к файлу.

Итак, вы возились с чем-то вроде getRealPathFromUri ().

Это не сработает на Q, так как никто не имеет доступа к that Pictures path.

Лучше использовать полученный uri напрямую.

Вы должны сделать это и ниже Q.

...