파일 열기(createChooser)

2020. 3. 27. 22:27Kotlin

반응형
    /**
     * 다운로드 후 파일 열기 
     */
    private fun openFile(dirPath: String, name: String) {
        try {
            var file = File(dirPath.plus(File.separator).plus(name))
            if (file.exists()) {
                var mimeType = when {
                                name.endsWith("txt") -> "text/*"
                                name.endsWith("jpg") or name.endsWith("jpeg") or
                                name.endsWith("JPG") or name.endsWith("gif")  or
                                name.endsWith("png") or name.endsWith("bmp") -> "image/*"
                                name.endsWith("doc") or name.endsWith("docx") -> "application/msword"
                                name.endsWith("xls") or name.endsWith("xlsx") -> "application/vnd.ms-excel"
                                name.endsWith("ppt") or name.endsWith("pptx") -> "application/vnd.ms-powerpoint"
                                name.endsWith("pdf") or name.endsWith("PDF")  -> "application/pdf"
                                else -> "application/*"
                               }
                var uri = FileProvider.getUriForFile(mContext, "$packageName.fileprovider", file)
                startActivity(Intent.createChooser(Intent(Intent.ACTION_VIEW).apply {
                    flags = Intent.FLAG_ACTIVITY_NO_HISTORY
                    flags = Intent.FLAG_ACTIVITY_SINGLE_TOP
                    putExtra(MediaStore.EXTRA_OUTPUT, uri)
                    setDataAndType(uri, mimeType)
                    flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
                }, "파일열기"))
            }else {
                // 파일 또는 디렉토리를 찾을 수 없습니다.
            }
        } catch (e: ActivityNotFoundException) {
            
        } catch (err: Exception){
           
        }
    }
반응형

'Kotlin' 카테고리의 다른 글

LinearSmoothScroller&scrollToPositionWithOffset  (0) 2020.11.23
file.copyTo  (0) 2019.12.20
Bitmap to File  (0) 2019.12.20
zip, unzip  (0) 2019.12.20
Bitmap in putExtra  (0) 2019.12.20