EACCES (В доступе отказано) Android - PullRequest
0 голосов
/ 19 февраля 2020

GOAL : выполнить сжатие для image/content, полученного из внешних источников (например, SD-карта, внутренний или накопитель) с помощью намерения.

Мне удалось получить фактический путь для извлеченного содержимого, но когда я пытаюсь сжать его, используя библиотеку сжатия ( zetbaitsu / Compressor ), ошибка его выдачи

открыть не удалось: EACCES (разрешение отклонено).

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

Вот моя функция:

void handleSendImage(Intent intent) {
    try {
        Uri imageUri =  intent.getParcelableExtra(Intent.EXTRA_STREAM);
        Log.d(TAG, "handleSendImage: " + imageUri.toString());
        File imageFile = new File(getFilePath(this, imageUri));
        Log.d(TAG, "handleSendImage: " + Uri.fromFile(imageFile));
        File compressedFile = new Compressor(this).compressToFile(imageFile);

    } catch (Exception e) {
        Log.e(TAG, "handleSendImage: " + e.getMessage());
    }
}

Вот мои выводы логов:

handleSendImage: content://com.android.providers.media.documents/document/image%3A30

handleSendImage: file:///storage/emulated/0/Download/4c568534307d605ed94878dc06d933ee.jpg

handleSendImage: /storage/emulated/0/Download/4c568534307d605ed94878dc06d933ee.jpg: open failed: EACCES (Permission denied)

1 Ответ

2 голосов
/ 19 февраля 2020

android:requestLegacyExternalStorage="true"

Добавьте это в файл манифеста, но это не будет работать в android 11

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...