首页 > 解决方案 > 在 Android 11 中,我无法从文档选项中获取文件路径

问题描述

检查图像以获得更多理解并提前致谢。在此屏幕截图中,所有选项都很好,但我不想在此处显示文档选项,但还需要选择一个文档。如果没有任何方法可以隐藏该选项,则需要帮助来获取文件的路径

if (isMediaDocument(uri)) {
            Log.e("URI", "" + uri);
            final String docId = DocumentsContract.getDocumentId(uri);
            Log.e("docId", "" + docId);
            final String[] split = docId.split(":");
            final String type = split[0];
            Log.e("TYPE", "" + type);
            Uri contentUri = null;
            if ("image".equals(type)) {
                contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
            } else if ("video".equals(type)) {
                contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
            } else if ("audio".equals(type)) {
                contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
            } /*else if ("document".equals(type)) {
                contentUri = uri;
            }*/
            selection = "_id=?";
            selectionArgs = new String[]{split[1]};
            return getDataColumn(context, contentUri, selection, selectionArgs);
        }
        if (isGoogleDriveUri(uri)) {
            return getDriveFilePath(context, uri);
        }
        if (isWhatsAppFile(uri)) {
            return getFilePathForWhatsApp(context, uri);
        }
        if ("file".equalsIgnoreCase(uri.getScheme())) {
            return uri.getPath();
        }
    }

标签: androidandroid-11

解决方案


您不能将该选项灰显。

即使您设法实现您getRealPathForUri()的文件系统路径,您的应用程序也不会在 Android 11+ 设备上具有读写访问权限。

所以你想要的没有意义。

直接使用uri。

现在每个人都这样做。


推荐阅读