Я получаю IllegalArgumentException при выборе файла документа из менеджера загрузок, что происходит только для oreo - PullRequest
0 голосов
/ 01 октября 2018

Здесь я прикрепляю логи:

   Caused by: java.lang.IllegalArgumentException: Unknown URI: content://downloads/public_downloads/1587
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:165)
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
    at android.content.ContentProviderProxy.query(ContentProviderNative.java:418)

Я использую этот код, который работает нормально. Но для менеджера загрузок он выдает исключение в первой строке блока 'try'

 Cursor cursor = null;
    final String column = "_data";
    final String[] projection = {
            column
    };

    try {
        cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs,
                null);
        if (cursor != null && cursor.moveToFirst()) {
            final int column_index = cursor.getColumnIndexOrThrow(column);
            return cursor.getString(column_index);
        }
    } finally {
        if (cursor != null)
            cursor.close();
    }
    return null;

Я уже пробовал это: Android получает путь к файлу из URI контента с помощью contentResolver и это: java.lang.IllegalArgumentException: неизвестный контент URI и некоторые другие, связанные сэтот вопрос, но ни один из них не решает мою проблему.

1 Ответ

0 голосов
/ 27 октября 2018

Я получаю ту же ошибку Unknown URI: content://downloads/public_downloads.Мне удалось решить эту проблему, изменив contentUri и используя InputStream методы для извлечения файла из каталога загрузки.В некоторых устройствах изменение контента Uri на content://downloads/my_downloads работает. Закажите этот ответ для полного решения .

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