有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用MediaStore创建特定的库文件夹

我试过这个密码

public static void openGallery(Context context) {
       String bucketId = "";
       final String[] projection = new String[] {"DISTINCT " + MediaStore.Images.Media.BUCKET_DISPLAY_NAME + ", " + MediaStore.Images.Media.BUCKET_ID};
       final Cursor cur = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, null);
       while (cur != null && cur.moveToNext()) {
           final String bucketName = cur.getString((cur.getColumnIndex(MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME)));
           if (bucketName.equals("Your_dir_name")) {
               bucketId = cur.getString((cur.getColumnIndex(MediaStore.Images.ImageColumns.BUCKET_ID)));
               break;
           }
       }
       Uri mediaUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;

       if (bucketId.length() > 0) {
           mediaUri = mediaUri.buildUpon()
                   .authority("media")
                   .appendQueryParameter("bucketId", bucketId)
                   .build();
       }
       if(cur != null){
           cur.close();
       }
       Intent intent = new Intent(Intent.ACTION_VIEW, mediaUri);
       context.startActivity(intent);
   }

但我未能打开特定于gallery的文件夹,但gallery主屏幕显示“file not supported”(文件不受支持)土司。 我有办法解决这个问题吗


共 (1) 个答案

  1. # 1 楼答案

    在处理存储在MediaStore中的文件时,无法设置特定文件夹的初始路径

    但是,在使用DocumentFile时,您可以使用DocumentsContract.EXTRA_INITIAL_URI,因此当用户想要从存储访问框架(SAF)中选择文件时,您可以设置初始路径:

    Uri initialUri = DocumentFileCompat.createDocumentUri(DocumentFileCompat.PRIMARY, "DCIM")
    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
            .putExtra(DocumentsContract.EXTRA_INITIAL_URI, initialUri)
    

    DocumentFileCompat.createDocumentUri()帮助您构建初始URI。你可以从SimpleStorage获得DocumentFileCompat