android Q 使用 ACTION_OPEN_DOCUMENT_TREE 选择目录进行遍历文件夹下文件
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
}
}