Pessoal, estou tendo um problema ao utilizar a FileConnection para acessar arquivos do meu celular. O código funciona perfeitamente no emulador do Netbeans, cujo diretório raiz é “/root1/”. No meu celular, quando uso o método FileSystemRegistry.listRoots(), aparecem 3 diretórios raíz: 1. /mmc/ 2. /nor/ 3. /nand/. Como queria acessar os arquivos do SD Card, retirei o cartão para ver qual desses diretórios raíz sumiria, e o mmc sumiu. Fiz esse código usando o mmc como diretório raiz, mas quando executo ele no celular o celular TRAVA TOTALMENTE, de modo que só consigo recuperar o controle do celular se tirar a bateria forçadamente. Gostaria de saber o que estou fazendo de errado, se alguém puder me ajudar. Ele dá um erro na tela pedindo “permissão para download de jogos” (???), totalmente nada a ver.
obs: Meu celular tem a implementação desta API opcional pois busquei a propriedade de sistema “microedition.io.file.FileConnection.version” e retornou 1.0 ao invés de null.
Agradeço a atenção desde já.
[code]package aula.ingles.tela;
import aula.ingles.;
import java.io.;
import java.util.;
import javax.microedition.io.;
import javax.microedition.io.file.;
import javax.microedition.lcdui.;
public class TelaInicial extends Tela {
private FileConnection arquivo;
private static final String url = “file:///mmc/”;
private ChoiceGroup listaAulas = new ChoiceGroup("Aula:", List.POPUP);
private Item botaoEntrar = new StringItem(null, "Entrar", Item.BUTTON);
private Command comandoSair = new Command("Sair", Command.EXIT, 0);
public TelaInicial(InglesMIDlet midletPai) {
super("Inglês - Tela Inicial", midletPai);
InputStream is = null;
try {
arquivo = (FileConnection) Connector.open(url);
Enumeration arquivos = arquivo.list("*.txt", false);
while(arquivos.hasMoreElements()) {
listaAulas.append(arquivos.nextElement().toString(), null);
}
} catch(Exception e) {
midletPai.destroyApp(true);
} finally {
if(arquivo != null) {
try {
arquivo.close();
} catch(Exception e) {}
}
}
listaAulas.setLayout(Item.LAYOUT_2 | Item.LAYOUT_CENTER);
botaoEntrar.setLayout(Item.LAYOUT_2 | Item.LAYOUT_CENTER);
botaoEntrar.addCommand(new Command("", Command.ITEM, 0));
botaoEntrar.setItemCommandListener(new ItemCommandListener() {
public void commandAction(Command comando, Item item) {
String numAula = listaAulas.getString(listaAulas
.getSelectedIndex()).substring(0, 4);
TelaInicial.this.midletPai.setNumAula(numAula);
TelaInicial.this.midletPai.irTelaPrincipal();
}
});
tela.addCommand(comandoSair);
tela.append(listaAulas);
tela.append(botaoEntrar);
tela.setCommandListener(new CommandListener() {
public void commandAction(Command c, Displayable d) {
TelaInicial.this.midletPai.destroyApp(true);
}
});
}
}[/code]
