Android opening a file with ACTION_GET_CONTENT results into different Uri's

前端 未结 4 755
不思量自难忘°
不思量自难忘° 2020-11-30 23:21

I am trying to open files by using Intent.ACTION_GET_CONTENT.

Dependent on the Android version/device brand the file browser opens and I get the follo

4条回答
  •  囚心锁ツ
    2020-11-30 23:51

    Pick any file using System File Picker:

    val intent = Intent(Intent.ACTION_GET_CONTENT)
    intent.type = "*/*"
    startActivityForResult(intent, 1)
    

    onActivityResult:

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == 1 && resultCode == Activity.RESULT_OK) {
            data?.data?.let {
                getFileFromUri(requireContext().contentResolver, uri, requireContext().cacheDir)
            }
        }
    }
    

    Get File:

    private fun getFileFromUri(contentResolver: ContentResolver, uri: Uri, directory: File): File {
        val file =
            File.createTempFile("suffix", "prefix", directory)
        file.outputStream().use {
            contentResolver.openInputStream(uri)?.copyTo(it)
        }
    
        return file
    }
    

提交回复
热议问题