[Android _data'在getContentResolver上不存在

问题描述 投票:0回答:1

[getColumnIndexOrThrow的原因可能会引发异常

java.lang.IllegalArgumentException:列_data不存在。可用的列:[]

但是,如果您重命名文件并重试,它可以工作吗?

private static String getDataColumn(Context context, Uri uri, String selection,
                                       String[] selectionArgs) {
        Cursor cursor = null;
        final String[] projection = {
                MediaStore.Files.FileColumns.DATA
        };
        try {
            cursor = context.getContentResolver().query(
                    uri, projection, selection, selectionArgs, null);
            if (cursor != null && cursor.moveToFirst()) {
                final int cindex = cursor.getColumnIndexOrThrow(projection[0]);
                return cursor.getString(cindex);
            }
        }
             catch (Exception e) {
                e.printStackTrace();
        } finally {
            if (cursor != null)
                cursor.close();
        }
        return null;
    }

原始文件符合]的意图>

content://com.sec.android.app.myfiles.FileProvider/device_storage/Download/myfile.pdf

但重命名的文件以以下形式出现

content:// 0 @ media / external / file / 588

getColumnIndexOrThrow会引发java.lang.IllegalArgumentException异常的原因是什么:列'_data'不存在。可用的列:[]如果重命名文件...

android android-contentresolver
1个回答
0
投票

© www.soinside.com 2019 - 2024. All rights reserved.