在打印输出图片媒体库表结构过程中,打印部分属性后报错Unable to convert BLOB to string

完整的报错信息如下:

该部分的代码为:
package com.example.imagepicker;
import android.annotation.SuppressLint;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.CursorLoader;
import androidx.loader.content.Loader;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.SQLException;
public class PickerActivity extends AppCompatActivity {
private static final String TAG = "PickerActivity";
private static final int LOADER_ID = 1;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_picker);
ContentResolver contentResolver = getContentResolver();
// Uri imageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
// Log.d(TAG, "imageUri ------> " + imageUri);
Uri imageUri = MediaStore.Files.getContentUri("external");
Cursor cursor = contentResolver.query(imageUri, null, null, null, null);
String[] columnNames = cursor.getColumnNames();
while (cursor.moveToNext()) {
Log.d(TAG, "==============");
for (String columnName : columnNames) {
@SuppressLint("Range") String value = cursor.getString(cursor.getColumnIndex(columnName));
Log.d(TAG, columnName + "------> " + value);
}
Log.d(TAG, "==============");
}
cursor.close();
// initLoadManger();
}
private void initLoadManger() {
LoaderManager loaderManager = LoaderManager.getInstance(this);
loaderManager.initLoader(LOADER_ID, null, new LoaderManager.LoaderCallbacks<Cursor>() {
@NonNull
@Override
public Loader<Cursor> onCreateLoader(int id, @Nullable Bundle args) {
if (id == LOADER_ID) {
return new CursorLoader(PickerActivity.this,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
new String[]{"_data", "_display_name", "date_modified"},
null, null, "data_added DESC");
}
return null;
}
@SuppressLint("Range")
@Override
public void onLoadFinished(@NonNull Loader<Cursor> loader, Cursor data) {
if (data != null) {
String[] columnNames = data.getColumnNames();
while(data.moveToNext()) {
Log.d(TAG, "==============");
for (String columnName : columnNames) {
// @SuppressLint("Range") String value = data.getString(data.getColumnIndex(columnName));
Log.d(TAG, columnName + "------> " + data.getString(data.getColumnIndex(columnName)));
}
Log.d(TAG, "==============");
}
data.close();
}
}
@Override
public void onLoaderReset(@NonNull Loader<Cursor> loader) {
}
});
}
}
尝试过网上的一些解决方案,但都没能成功解决这个问题,希望各位大佬指点一二,不甚感激
数据类型转换错误