ここにログを添付しています:
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がcontentResolverを使用してコンテンツURIからファイルパスを取得する およびこれ: Java.lang.IllegalArgumentException:Unknown URI content およびこの質問に関連するが、他にはないそれらの1つは私の問題を解決します。
同じエラーUnknown URI: content://downloads/public_downloads
が発生していました。 contentUriを変更し、InputStream
メソッドを使用してダウンロードディレクトリからファイルを取得することで、この問題を解決できました。一部のデバイスでは、contentUriをcontent://downloads/my_downloads
に変更すると機能します。 完全なソリューションについてはこの回答をご覧ください 。