如何在 API 29+ 范围存储中列出我的应用程序创建的所有文件?

问题描述

我想在 API 级别 29+ 上记录由我的 android 应用程序创建的文件和目录, 因为 listFiles() 不工作并给出 null 输出。 以下代码创建 TestFolder 并将图像复制到其中,我想从中读取所有图像。

ContentResolver resolver = getContentResolver();
    ContentValues contentValues = new ContentValues();
    String RELATIVE_PATH = Environment.DIRECTORY_PICTURES + File.separator + "TestFolder";

    try{

        contentValues.put(MediaStore.MediaColumns.disPLAY_NAME,System.currentTimeMillis()+".jpg");
        contentValues.put(MediaStore.MediaColumns.MIME_TYPE,"image/jpg");
        OutputStream imageOutStream;

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH,RELATIVE_PATH);
        }

        Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(),imageUri);
        Uri uri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,contentValues);

        imageOutStream = resolver.openOutputStream(uri);
        bitmap.compress(Bitmap.CompressFormat.JPEG,100,imageOutStream);
        imageOutStream.close();

        destTv.setText(uri.toString());

    }catch (Exception e){
        Log.e(TAG,"init: "+e );
    }

解决方法

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

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

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