小编xia*_*oba的帖子

如何在Android 11和targetApi 30上从文档uri获取真实文件路径或文件名

Android 11
\n targetApi 30
\n不请求READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE
\n使用SAF api 获取如下 uri:
\n "content://com.android.providers.media.documents/document/document%3"
\n并解析uri 像这样:

\n
public static String getRealPath(uri) {\n    String docId = DocumentsContract.getDocumentId(uri);\n    String[] split = docId.split(":");\n    String type = split[0];\n    Uri contentUri;\n    switch (type) {\n        case "image":\n            contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;\n            break;\n        case "video":\n            contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;\n            break;\n        case "audio":\n            contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;\n            break;\n        default:\n            contentUri = MediaStore.Files.getContentUri("external");\n    }\n    String selection = "_id=?";\n    String[] selectionArgs = new String[]{\n            split[1]\n    };\n\n    return getDataColumn(getContext(), contentUri, selection, selectionArgs);\n}\n\npublic …
Run Code Online (Sandbox Code Playgroud)

android saf

7
推荐指数
0
解决办法
1043
查看次数

标签 统计

android ×1

saf ×1