android Q 使用 ACTION_OPEN_DOCUMENT_TREE 选择目录进行遍历文件夹下文件

时间:2025-01-28 10:03:29
enum class MimeType(val value: String) { _png("image/png"), _jpeg("image/jpeg"), _jpg("image/jpeg"), _webp("image/webp"), _gif("image/gif"), _bmp("image/bmp"), _3gp("video/3gpp"), _apk("application/-archive"), _asf("video/x-ms-asf"), _avi("video/x-msvideo"), _bin("application/octet-stream"), _c("text/plain"), _class("application/octet-stream"), _conf("text/plain"), _cpp("text/plain"), _doc("application/msword"), _docx("application/"), _xls("application/-excel"), _xlsx("application/"), _exe("application/octet-stream"), _gtar("application/x-gtar"), _gz("application/x-gzip"), _h("text/plain"), _htm("text/html"), _html("text/html"), _jar("application/java-archive"), _java("text/plain"), _js("application/x-javascript"), _log("text/plain"), _m3u("audio/x-mpegurl"), _m4a("audio/mp4a-latm"), _m4b("audio/mp4a-latm"), _m4p("audio/mp4a-latm"), _m4u("video/"), _m4v("video/x-m4v"), _mov("video/quicktime"), _mp2("audio/x-mpeg"), _mp3("audio/x-mpeg"), _mp4("video/mp4"), _mpc("application/"), _mpe("video/mpeg"), _mpeg("video/mpeg"), _mpg("video/mpeg"), _mpg4("video/mp4"), _mpga("audio/mpeg"), _msg("application/-outlook"), _ogg("audio/ogg"), _pdf("application/pdf"), _pps("application/-powerpoint"), _ppt("application/-powerpoint"), _pptx("application/"), _prop("text/plain"), _rc("text/plain"), _rmvb("audio/x-pn-realaudio"), _rtf("application/rtf"), _sh("text/plain"), _tar("application/x-tar"), _tgz("application/x-compressed"), _txt("text/plain"), _wav("audio/x-wav"), _wma("audio/x-ms-wma"), _wmv("audio/x-ms-wmv"), _wps("application/-works"), _xml("text/plain"), _z("application/x-compress"), _zip("application/x-zip-compressed"), _0("*/*"), ; companion object { fun isImage(mimeType: String?): Boolean { return mimeType?.let { _webp.value == mimeType || _png.value == mimeType || _jpeg.value == mimeType || _jpg.value == mimeType || _bmp.value == mimeType || _gif.value == mimeType } ?: false } fun isGif(mimeType: String?): Boolean { return mimeType?.let { _gif.value == mimeType } ?: false } fun isApk(mimeType: String?) = mimeType?.let { _apk.value == mimeType } ?: false fun isVideo(mimeType: String?) = mimeType?.let { _m3u.value == mimeType || _avi.value == mimeType } ?: false } }