Estou com um problema, no meu app , eu amarzeno meus dados em arquivo “exemplo.txt”. Estou consiguindo achar pelo “File Explore” no android.
No AndroidManifest.xml utilizei os permission:
No meu emulador, tudo tranquilo. Mas quando importo o app para o aparelho, o programa abre normalmente , qdo é gerado o arquivo, não consigo achar este txt. Tentei achar pelo “Astro” e pelo “terminal”, não tive sucesso.
Alguém já passou por essa situação?, estou achando que tem haver com as permissão dos diretório, mas não consigo logar como root no aparelho, para dar chmod 777.
Pelo que entendi funciona assim, você pode “escrever” arquivos nos diretórios públicos ou no diretório de sua aplicação, para o diretório de sua aplicação use o seguinte.
File root = Environment.getExternalStorageDirectory();
if (root.canWrite()) {
pathFiles = new File(root + "/Android/data/br.com.tabletsoft.converttopdf/files");
if (!pathFiles.exists()) pathFiles.mkdirs();
}
Neste codigo verifico se ele tem direito de escrita no SD, se tiver ele cria a pasta baseado no package da minha aplicação br.com.tabletsoft.converttopdf + a pasta files. Este é o caminho padrão definido pelo Android. Neste caso do path de sua aplicação se vc desinstalar ela do celular automaticamente os arquivos são todas excluidos juntamente com a pasta.
A variavel File pathFiles armazena o diretório de meus arquivos, e quando vou escrever neste diretorio, faço um new File(pathFiles, “nomeDoArquivo.txt”) por exemplo
O código acima armazena os arquivos no path = “data/data/br.com.Seuprograma/files”, isso funciona no emulador, agora fazer o teste no aparelho isso muda, pq?
Com as observações do Evandro, no qual ajudou e bastante, o novo código ficou assim:
try {
File root = Environment.getExternalStorageDirectory();
File file = new File(root, "Data.txt");
if (root.canWrite())
{
FileWriter filewriter = new FileWriter(file,true);
BufferedWriter out = new BufferedWriter(filewriter);
out.write("GUJ");
out.close();
}
} catch (IOException e) {
Log.e("TAG", "Could not write file " + e.getMessage());
}
Porém no emulador não aparece o arquivo , já no aparelho sim, pq?
Bom, o problema foi solucionado, mas sugiram essas dúvidas acima. Se alguém puder compatirlhar seus conhecimentos…