Android11-File.listFiles()没有返回一些扩展名文件。
创始人
2024-08-20 09:30:29
0

在Android 11中,由于隐私限制的修改,File.listFiles()函数可能无法返回所有文件。解决此问题的最佳方法是使用新的媒体访问框架(MediaStore)来获取指定扩展名的所有文件。以下是代码示例:

private List getFilesWithExtension(String extension) {
    List files = new ArrayList<>();
    ContentResolver resolver = getContentResolver();
    Uri uri = MediaStore.Files.getContentUri("external");
    String[] projection = {MediaStore.Files.FileColumns.DATA};
    String selection = MediaStore.Files.FileColumns.DISPLAY_NAME + " LIKE ? AND " + MediaStore.Files.FileColumns.MEDIA_TYPE + " = ?";
    String[] selectionArgs = new String[]{"%" + extension, String.valueOf(MediaStore.Files.FileColumns.MEDIA_TYPE_NONE)};
    String sortOrder = null;
    Cursor cursor = resolver.query(uri, projection, selection, selectionArgs, sortOrder);

    if (cursor != null) {
        int dataColumnIndex = cursor.getColumnIndex(MediaStore.Files.FileColumns.DATA);
        while (cursor.moveToNext()) {
            String filePath = cursor.getString(dataColumnIndex);
            files.add(new File(filePath));
        }
        cursor.close();
    }

    return files;
}

上述代码中,我们使用MediaStore.Files.getContentUri("external")来获取存储在外部存储的媒体文件的URI。我们使用MediaStore.Files.FileColumns.DISPLAY_NAME和MediaStore.Files.FileColumns.MEDIA_TYPE来创建选择条件,以获取指定扩展名的所有文件,同时排除媒体文件。最后,我们使用ContentResolver来查询数据库并获取File对象列表。

相关内容

热门资讯

透视安装!aapoker插件(... 透视安装!aapoker插件(透视)免费透视脚本(本来真的是有挂)aapoker插件辅助器中分为三种...
透视苹果版!aapoker插件... 透视苹果版!aapoker插件下载(透视)万能辅助器(确实真的是有挂)1、玩家可以在aapoker插...
透视游戏!aapoker怎么控... 透视游戏!aapoker怎么控制牌(透视)万能辅助器(竟然是真的有挂)1、下载好aapoker怎么控...
透视真的!aapoker能控制... 透视真的!aapoker能控制牌吗(透视)辅助(原来是真的有挂)1、游戏颠覆性的策略玩法,独创攻略技...
透视总结!aapoker怎么设... 透视总结!aapoker怎么设置抽水(透视)透视脚本入口(总是真的是有挂)1、点击下载安装,aapo...
透视软件!aapoker透视插... 透视软件!aapoker透视插件(透视)免费透视脚本(本来是真的有挂)aapoker透视插件辅助器中...
透视辅助!aapoker如何设... 透视辅助!aapoker如何设置胜率(透视)透视方法(确实存在有挂)1)aapoker如何设置胜率辅...
透视中牌率!aapoker如何... 透视中牌率!aapoker如何设置胜率(透视)脚本(切实是有挂);1、超多福利:超高返利,海量正版游...
透视有挂!aapoker发牌逻... 透视有挂!aapoker发牌逻辑(透视)透视脚本(切实真的是有挂)1)aapoker发牌逻辑辅助挂:...
透视黑科技!aapoker透视... 透视黑科技!aapoker透视脚本下载(透视)发牌逻辑(确实是真的有挂)1、aapoker透视脚本下...