Não é possível gravar no cartão SD - o canWrite está retornando false
Desculpe pelo título ambíguo, mas estou fazendo o seguinte para escrever uma sequência simples em um arquivo:
try {
File root = Environment.getExternalStorageDirectory();
if (root.canWrite()){
System.out.println("Can write.");
File def_file = new File(root, "default.txt");
FileWriter fw = new FileWriter(def_file);
BufferedWriter out = new BufferedWriter(fw);
String defbuf = "default";
out.write(defbuf);
out.flush();
out.close();
}
else
System.out.println("Can't write.");
}catch (IOException e) {
e.printStackTrace();
}
Masroot.canWrite()
parece estar retornando sempre falso. Não estou executando isso em um emulador, tenho meu Android Eris conectado ao meu computador via USB e executando o aplicativo no meu telefone via Eclipse. Existe uma maneira de dar permissão ao meu aplicativo para que isso não aconteça?
Além disso, esse código parece criar o arquivodefault.txt
mas e se ele já existir, ele ignorará a criação e apenas a abrirá para escrever ou eu tenho que pegar algo comoFileAlreadyExists
(se existir uma exceção), que apenas a abre e grava?
Obrigado por qualquer ajuda pessoal.