it-swarm.com.de

Ich erhalte IllegalArgumentException, wenn ich eine Dokumentdatei aus dem Download-Manager auswähle, was nur für oreo geschieht

Hier füge ich die Protokolle an:

   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)

Ich verwende diesen Code, der gut funktioniert. Für den Fall des Download-Managers wird jedoch in der ersten Zeile des 'try'-Blocks eine Ausnahme ausgelöst

 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;

Ich habe es bereits versucht: Android erhält Dateipfad von Inhalts-URI mit contentResolver und dies: Java.lang.IllegalArgumentException: Unbekannter URI-Inhalt und einige andere, die mit dieser Frage zusammenhängen, aber keine einer von ihnen löst mein Problem.

9
Ajay Chauhan

Ich habe den gleichen Fehler erhalten Unknown URI: content://downloads/public_downloads. Ich habe es geschafft, dieses Problem zu lösen, indem ich contentUri geändert und InputStream -Methoden verwendet habe, um Dateien aus dem Download-Verzeichnis abzurufen. Bei einigen Geräten ändert sich contentUri zu content://downloads/my_downloads funktioniert. Checke diese Antwort für die vollständige Lösung .