Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Damiluke

Invocação de MIDlets

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.