Olá pessoal como vao?
Está acontecendo um problema, quando tento escrever e ler um arquivo do emulador dá certinho utilizo o seguinte código:
//cria diretorio
public void createDir() {
try {
//cria arquivo no cartão de memória
FileConnection fc = (FileConnection) Connector.open("file:///root1/JiTVBenchmark/");
// lista arquivos do diretorio
Enumeration e = FileSystemRegistry.listRoots();
while (e.hasMoreElements()) {
System.out.println("S5");
String rootName = (String) e.nextElement();
System.out.println("mounted root:" + rootName);
}
if (!fc.exists()) {
fc.mkdir();
}
fc.close();
} catch (IOException e) {
System.out.println("Erro ao criar diretorio");
e.printStackTrace();
}
}
public void call(){
Thread t = new Thread(new Runnable() {
public void run() {
createDir();
}
});
t.start();
}
Porém quando tento importar para o meu celular troco root1 por c: ou entao por e: e não dá certo!
Dá erro de segurança e acesso negado!!!
O que pode estar acontecendo??? Ele está sendo chamado dentro de uma thread já!!! estranho nao é???
quikkoo
Outubro 29, 2010, 4:01pm
#2
se ñ me engano vc precisa dar a permissão pras midelets poderem acessar o sistema de arquivos do seu celular, vc deve encontrar essa opção na configuração de aplicativos ou algo assim
flw t+
Tá certo!!!
Mas como faço isso???
fabioEM
Outubro 29, 2010, 6:46pm
#4
É o seguinte, vc não pode gravar/apagar qualquer diretório de seu seu celular, por obvias razões de segurança. J2me não te permite isso e até pq roda encima de um SO, o qual, impõe suas restrições para os aplicativos que rodam acima dele. Antes de mais, nada precisa saber quais diretórios pode gravar. Dê uma olhada nesse link que te explica bem legalsinho:
http://developers.sun.com/mobility/apis/articles/fileconnection/
Adiantando, existe um metodo estático FileSystemRegister que te retorna um lista de diretórios a partir dai vc pode verificar quais os possíveis para gravação.
Legal o link… lá informa caminhos de acesso para gravação e leitura!!!
O foda é que ja tentei todo tipo…
olhaa:
CFCard/ - FileConnection fc = (FileConnection) Connector.open(“file:///CFCard/dados.txt”);
SDCard/ - FileConnection fc = (FileConnection) Connector.open(“file:///SDCard/dados.txt”);
MemoryStick/ - FileConnection fc = (FileConnection) Connector.open(“file:///MemoryStick/dados.txt”);
C:/ - FileConnection fc = (FileConnection) Connector.open(“file:///C:/dados.txt”);
/ - FileConnection fc = (FileConnection) Connector.open(“file:////dados.txt”);
Para memória interna use “file://localhost/c:/” ou "file:///c:/"
Para cartão de memória “file://localhost/e:/” ou “file:///e:/”
Hauhhuauha… e dá acesso negado!!!
Tenso tenso…
fabioEM
Outubro 29, 2010, 7:41pm
#6
Tentou pegar todos diretórios pelo metodo FileSystemRegister? E testar cada um se é ou não possível?
NO emulador sim!!! Mas no cel Nao…
Realizei o teste de roots disponíveis no dispositivo, resultado em: [color=red]C:/ [/color]
Daí tentei criar a pasta no dispositivo, da seguinte forma:
FileConnection fc = (FileConnection) Connector.open("file:///C:/JiTVBenchmark/");
if (!fc.exists()) {
fc.mkdir();
}
fc.close();
Há alguma coisa errada neste código? Barras ou a utilização de file ???
Lembrando: Ocorre o seguinte ERRO: java/lang/SecurityException - Access denied
Alguma [color=blue] LUZ POR FAVOR??? [/color]