Android列出所有可用图像

JaV*_*did 5 android image list cursor

我正在制作一个应用程序,要求我列出手机SD卡上的所有可用图像.

我试过查询ContentResolver方式即

Cursor image = getContentResolver().query(Images.Media.EXTERNAL_CONTENT_URI, new String[]{Images.Media._ID,Images.Media.DATA,Images.Media.DISPLAY_NAME}, null, null, null);
Run Code Online (Sandbox Code Playgroud)

但没有任何结果.有什么方法我可以得到列表或如果那不可能那么是否有任何可能的意图(例如PICK),通过它我可以允许用户选择一个文件,然后访问用户选择的文件的路径?

Helppppp家伙......

Gub*_*ron 9

//where contextObject is your activity
ContentResolver cr = contextObject.getContentResolver();

String[] columns = new String[] {
                ImageColumns._ID,
                ImageColumns.TITLE,
                ImageColumns.DATA,
                ImageColumns.MIME_TYPE,
                ImageColumns.SIZE };
cur = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                columns, null, null, null);
Run Code Online (Sandbox Code Playgroud)

我的代码非常像你的代码(除了故障),它的工作原理.你不需要去询问Gallery Intent的内容,它应该可以工作.我的两个猜测是:

1)确保没有安装USB存储器,如果没有外部图像.

2)可能是权限问题?尝试添加GLOBAL_SEARCH权限,看看是否有帮助.


Fre*_*jon 1

您可以使用图库活动来选择图像,如下所示:

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),SELECT_IMAGE);
Run Code Online (Sandbox Code Playgroud)

在活动的回调中,文件 uri 将位于意图参数中