Damiluke 0 Denunciar post Postado Julho 6, 2009 Viva Tenho a seguinte MIDlet chamda MainClass package AgendaX; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; /* Esta class é a primeira a ser invocada.*/ public class MainClass extends MIDlet implements CommandListener{ // private Inicializacao menu; private List menu; private String[] items = {"Procurar Contacto", "Adicionar Contacto", "Editar Contacto", "Excluir Contacto"}; private Command cmdSair; private Command cmdOk; private Display ecrã; private MIDlet midlet; private AdicionarContacto adicionarContacto = null; private EditarContacto editarContacto = null; private ExcluirContacto excluirContacto = null; private ProcurarContacto procurarContacto = null; private Teste teste = null; /* Construtor da classe AgendaX */ public MainClass(){ menu = new List ("AgendaX", Choice.IMPLICIT, items, null); cmdSair = new Command("Sair", Command.BACK, 0); menu.addCommand(cmdSair); menu.setCommandListener(this); this.editarContacto = new EditarContacto("##############################"); } // AgendaX() public void startApp() { ecrã = Display.getDisplay(this); ecrã.setCurrent(menu); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction (Command c, Displayable d) { if (c == cmdSair) { System.out.println("-------------------- Terminar Aplicação"); destroyApp(true); notifyDestroyed(); } else { System.out.println("------ Determinar a opção seleccionada"); //if (c == List.SELECT_COMMAND) //{ String itemSeleccionado = menu.getString(menu.getSelectedIndex()); if (itemSeleccionado.equals("Procurar Contacto")) { System.out.println("------------- Procurar Contacto"); //procurarContacto = new ProcurarContacto(); } if (itemSeleccionado.equals("Adicionar Contacto")) { System.out.println("****** AdicionarContacto"); this.adicionarContacto = new AdicionarContacto(ecrã, this); //adicionarContacto.startApp(); } if (itemSeleccionado.equals("Editar Contacto")) { System.out.println("--------------- Editar Contacto"); //editarContacto = new EditarContacto("Editar Contacto **********"); teste = new Teste("jkfghlsfdkjghsdfkjghdkfjg"); } if (itemSeleccionado.equals("Excluir Contacto")) { System.out.println("------------ Excluir Contacto"); this.excluirContacto = new ExcluirContacto(); } } } /* CommandAction() */ } /* class AgendaX */ que chama a Midlet Teste, cujo código é o seguinte: /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package AgendaX; import javax.microedition.midlet.*; /** * @author Paulo */ public class Teste extends MIDlet { public Teste(String msg){ System.out.println(msg); } public void startApp() { } public void pauseApp() { } public void destroyApp(boolean unconditional) { } } Alguem me pode explicar porque razão quando a MIDlet teste é chamada a partir do construtor a aplicação funciona correctamente e quando chamada pela linha teste = new Teste("jkfghlsfdkjghsdfkjghdkfjg"); do método commandAction apresenta a seguinte mensagem de erro: java.lang.SecurityException: Application not authorized to access the restricted API Compartilhar este post Link para o post Compartilhar em outros sites
Vergil 15 Denunciar post Postado Julho 6, 2009 Ele está negando à API. As especificações de MIDP 2.0 definem um sistema de permissões. E pra fazer algum tipo de conexão você precisa ter certas permissões. As permissões são: javax.microedition.io.Connector.http javax.microedition.io.Connector.socket javax.microedition.io.Connector.https javax.microedition.io.Connector.ssl javax.microedition.io.Connector.datagram javax.microedition.io.Connector.serversocket javax.microedition.io.Connector.datagramreceiver javax.microedition.io.Connector.comm javax.microedition.io.PushRegistry Para resolver seu problema, creio que você deva acrescentar uma linha no seu arquivo JAD com a instrução: MIDlet-Permissions: javax.microedition.io.Connector.socket Dá uma lida neste TUTORIAL para maiores explicações. Nele fala que você pode fazer isto acessando Configurações/Permissões... do seu emulador. Compartilhar este post Link para o post Compartilhar em outros sites