Erro ao acessar arquivos no SD Card

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]

Utiliza [color=green]System.getProperty(“fileconn.dir.memorycard”)[/color] para recuperar o diretório do cartão de memória…

Não deu certo… essa propriedade retorna null. Eu preciso acessar o sistema de arquivos do celular, não precisa ser exatamente do cartão.

agora descobri que precisa a aplicação estar assinada digitalmente pra funcionar esta API… :frowning:

Então não necessáriamente precisa estar assinado, como já respondido pelo boone em outro tópico, a assinatura só é utilizada para evitar as mensagens de confirmação de acesso…

Tenta recuperar o diretório fileconn.dir.private…

Qual celular você está utilizando?

Sim, realmente não precisa.
Se acessa camera, diretórios e net mesmo sem certificado.
O que o certificado possibilita é o relaxamento da segurança, dando opção de vc configurar a aplicação para não mais te avisar caso ela vá acessar algo crítico, seja por custo ou privacidade.

Legal, então acho que o problema pode estar no meu celular mesmo, pois é tentar abrir uma FileConnection e o celular imediatamente trava com uma mensagem estranha pedindo permissão para “Download de Jogos”. O celular é um LG 550. Já tentei várias system properties, listar os root diretórios, usar c: e e: mas nada de resultado.