小编Ibr*_*ali的帖子

Android 9 (Pie) ContentResolver 查询 MediaStore.Images.Media.EXTERNAL_CONTENT_URI 在 api 28 上返回 null

我正在获取设备中所有图像、视频和音频文件的列表。下面的代码在 android O (api 27) 之前的所有设备上都可以正常工作。但它不适用于 android Pie 设备(api 28)。Cursor 返回 nullquery

对于图像

String[] proj = {MediaStore.Images.Media._ID,
                    MediaStore.Images.Media.DATA,
                    MediaStore.Images.Media.TITLE,
                    MediaStore.Images.Media.SIZE
            };
ContentResolver cr = context.getContentResolver();

Cursor imagescursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                    proj, null, null, "_size DESC");
Run Code Online (Sandbox Code Playgroud)

对于视频文件

String[] proj = {MediaStore.Video.Media._ID,
                    MediaStore.Video.Media.DATA,
                    MediaStore.Video.Media.TITLE,
                    MediaStore.Video.Media.SIZE,
                    MediaStore.Video.Media.DURATION
            };
ContentResolver cr = context.getContentResolver();

Cursor videocursor = context.getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
                    proj, null, null, "_size DESC");
Run Code Online (Sandbox Code Playgroud)

对于音频文件

String[] proj = {MediaStore.Audio.Media._ID,
                    MediaStore.Audio.Media.DATA,
                    MediaStore.Audio.Media.DISPLAY_NAME,
                    MediaStore.Audio.Media.SIZE,
                    MediaStore.Audio.Media.DURATION};
ContentResolver cr = context.getContentResolver();

Cursor audiocursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                    proj, null, null, "_size …
Run Code Online (Sandbox Code Playgroud)

android mediastore android-contentresolver media-queries android-9.0-pie

5
推荐指数
1
解决办法
2479
查看次数