2
respostas

Erro ao renomear arquivo interno Android

Bom dia, estou trabalhando em um projeto onde captura fotos a partir da câmera e armazena os arquivos internamente, me deparei com a situação onde preciso renomear o mesmo porém o arquivo não altera o nome do mesmo e não é possível exibir a imagem a partir do novo nome e do caminho passado.

Segue o código usado para renomear, permissões do manifesto e o resultado dos métodos.

Manifesto:

 <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />
    <uses-permission android:name="com.google.android.orv=="></uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />

Resultado obtido a partir da Intent da Câmera:

  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            //content://media/external/images/media/120  //caminho da imagem usado para exibição  + sequencial referente a fotpo

            String destinationFilename = android.os.Environment.getExternalStorageDirectory().getPath() + sourceFilename;//diretorio completo do arquivo

            String caminho = destinationFilename.substring(0, 42);

            //iv_preview.setImageURI(image_uri);//usado para a exibição

//Metodo usado para renomear o arquivo
            File from = new File(caminho, image_uri.toString());
            File to = new File(caminho, "123456");
            from.renameTo(to);

            iv_preview.setImageURI(image_uri);//exibição funcionando
            //iv_preview.setImageURI(Uri.parse(caminho + to));//nao exibe
        }
    }

Resultados:

  String sourceFilename = image_uri.getPath(); == content://media/external/images/media/198

    String destinationFilename = android.os.Environment.getExternalStorageDirectory().getPath() + sourceFilename; == /storage/emulated/0/external/images/media/

to == content:/media/external/images/media/123456

Obrigado.

2 respostas

Sera que alguem nao pode me ajudar nao?

Oi Petrus, tudo bem ?

Cara eu vi que sua dúvida é um pouco antiga, será que tu já resolveu ? Se sim pode conosco ?