Fazendo uma chamada Telefônica em J2ME

17 julho 2009
Aqui está um código de como fazer uma aplicação que realiza uma chamada telefônica. Eu testei no meu celular da Nokia e funcionou perfeitamente. Aproveitem e comentem se der qualquer problema!

O código todo com exceção do método chamar é para criar um form, com um textField e dois comandos: um para chamar e o outro para sair.

import javax.microedition.io.ConnectionNotFoundException;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.ImageItem;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;

public class MIDletChamada extends MIDlet implements CommandListener {

private boolean midletPaused = false;

private Command exitCommand;
private Command cmdChamar;
private Form form;
private TextField textField;

public MIDletChamada() {
}

private void initialize() {
}

public void startMIDlet() {
switchDisplayable(null, getForm());
}

public void resumeMIDlet() {
}

public void switchDisplayable(Alert alert, Displayable nextDisplayable) {
Display display = getDisplay();
if (alert == null) {
display.setCurrent(nextDisplayable);
} else {
display.setCurrent(alert, nextDisplayable);
}
}

public void commandAction(Command command, Displayable displayable) {
if (displayable == form) {
if (command == cmdChamar) {
chamar(getTextField().getString());
} else if (command == exitCommand) {
exitMIDlet();
}
}
}

public Command getExitCommand() {
if (exitCommand == null) {
exitCommand = new Command("Sair", Command.EXIT, 0);
}
return exitCommand;
}

public Form getForm() {
if (form == null) {
form = new Form("", new Item[] { getTextField() });
form.addCommand(getExitCommand());
form.addCommand(getCmdChamar());
form.setCommandListener(this);
}
return form;
}

public Command getCmdChamar() {
if (cmdChamar == null) {
cmdChamar = new Command("Chamar", Command.OK, 0);
}
return cmdChamar;
}

public TextField getTextField() {
if (textField == null) {
textField = new TextField("Telefone", null, 32, TextField.PHONENUMBER);
textField.setLayout(ImageItem.LAYOUT_DEFAULT);
textField.setInitialInputMode("UCB_BASIC_LATIN");
}
return textField;
}

public Display getDisplay () {
return Display.getDisplay(this);
}


public void exitMIDlet() {
switchDisplayable (null, null);
destroyApp(true);
notifyDestroyed();
}

private void chamar(String numero) {
try {

platformRequest("tel:" + numero);

} catch (ConnectionNotFoundException ex) {
System.out.println(ex.getMessage());
}
}

public void startApp() {
if (midletPaused) {
resumeMIDlet ();
} else {
initialize ();
startMIDlet ();
}
midletPaused = false;
}

public void pauseApp() {
midletPaused = true;
}

public void destroyApp(boolean unconditional) {
}
}

Este código foi disponibilizado pela Nokia, em seu forum.
Att, javamovel

0 comentários:

Postar um comentário