如何在android 10中列出外部存储中的所有图像

问题描述

首先,这是我第一次在这里提问,所以如果我做错了什么,请告诉我。我的应用程序中有一个活动,它列出了用户设备上的所有公共(外部)图像,并允许他们选择要插入到帖子中的图像。在 Android 9 之前一切正常,但在 10 及更高版本上,图像不显示。我知道这是因为新的范围存储,并且已经读到 Columns.DATA 和 Columns.INDEX 已被弃用,我相信我必须使用 fileDescriptor,但我在理解它时遇到了问题。

我正在使用此代码列出所有文件夹,第一张图像显示文件缩略图...

\\

public void 



getAllShownImagesPath(Activity activity) {

android.net.Uri uri;
android.database.Cursor cursor;
int column_index_data,column_index_folder_name;

String absolutePathOfImage 
= null;

uri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI; String[] projection = { 
android.provider.MediaStore.MediaColumns.DATA,android.provider.MediaStore.Images.Media.BUCKET_disPLAY_NAME };
cursor = activity.getContentResolver().query(uri,projection,null,null);
column_index_data = cursor.getColumnIndexOrThrow(android.provider.MediaStore.MediaColumns.DATA);
column_index_folder_name = cursor 
.getColumnIndexOrThrow(android.provider.MediaStore.Images.Media.BUCKET_disPLAY_NAME); 
while (cursor.movetoNext()) {
absolutePathOfImage = cursor.getString(column_index_data);
_filterToFolder(absolutePathOfImage);
};
}

///

然后,我将数据放入 grideview,当点击时,我列出了 grid view 中的所有图像..

但我很确定主要问题在于上面的代码,因为在 Android 10 及更高版本上,文件夹不会出现。

我已经搜索过,但没有找到以这种方式使用文件描述符的好例子,而不是获取图像的路径。

真诚地感谢任何帮助...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)