在 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();
}
}

您不能将该选项灰显。

即使你设法实现了getRealPathForUri()来提供文件系统路径,你的应用程序也不会在Android 11+设备上进行读写访问。

所以你想要什么毫无意义。

直接使用uri。

每个人现在都这样做。

最新更新