Convertendo Uri para caminho físico

ByLearner, você sabe como converter uma Uri para o caminho físico do arquivo?

Se você não sabe como recuperar um arquivo no seu aplicativo veja esse post.

Para fazer a conversão de Uri para caminho físico do arquivo, iremos utilizar uma biblioteca que está disponível no GitHub no link.

Para utilizarmos essa biblioteca temos que adicionar a dependência no build.gradle da aplicação a dependência abaixo.

implementation 'com.github.HBiSoft:PickiT:0.1.5'

Também temos que colocar o class path no build.gradle do projeto.

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

Com as dependências configuradas no projeto, agora podemos utilizar a lib no projeto e então converter as Uris para os caminhos fisicos. Então para utilizarmos a lib temos que implementar o código abaixo.

Temos que criar uma propriedade da classe.

    private lateinit var pickIt: PickiT    

Temos que criar um método para instanciar o objeto da biblioteca.

private fun createPickIt() {
        pickIt = PickiT(context, object : PickiTCallbacks {

            override fun PickiTonStartListener() {}

            override fun PickiTonProgressUpdate(progress: Int) {}

            override fun PickiTonCompleteListener(path: String?, wasDriveFile: Boolean, wasSuccessful: Boolean, Reason: String?, uri: Uri) {

                if (wasSuccessful) {
                    if (path != null) {
                        //utilizar o path
                    }
                } 
            }
        })
    }

E então com a propriedade pickit criada podemos recuperar o path, fazendo a chamada do método getPath.

pickIt.getPath(uri, Build.VERSION.SDK_INT)

Deixe uma resposta