Sacar información de sistema del móvil
Un pequeño midlet que saca información básica del entorno de ejecución.
/*
* SysInfo
* Utilidad de ejemplo que aparece en libros viejos.
* La hora no la saca bien.
*/
package hello;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.*;
public class SysInfo extends MIDlet implements CommandListener {
private Command exitCommand;
private Display pantalla;
private Form formulario;
/**
* SysInfo
* Constructor
*/
public SysInfo() {
// Tomamos la pantalla
pantalla = Display.getDisplay(this);
// Creamos el comando para salir
exitCommand = new Command("Exit", Command.EXIT, 2);
// Creamos el formulario principal
formulario = new Form("SysInfo");
// Sacamos la fecha actual
Calendar calendar = Calendar.getInstance();
// Un string con la fecha. La fecha del móvil sera 1.1.1970
String fecha = calendar.getTime().toString();
// Sacamos memoria total y disponible
Runtime runtime = Runtime.getRuntime();
String totalMem = Long.toString(runtime.totalMemory());
String freeMem = Long.toString(runtime.freeMemory());
//String alturaImagen = Integer.toString(pantalla.getBestImageHeight(0));
// Más propiedades de pantalla
String isColor = pantalla.isColor() ? "Sí" : "No";
String numColors = Integer.toString(pantalla.numColors());
// Creamos los StringItem y los metemos en el formulario
formulario.append(new StringItem("", "Hora: " + fecha));
formulario.append(new StringItem("", "Memoria total: " + totalMem));
formulario.append(new StringItem("", "Memoria libre: " + freeMem));
formulario.append(new StringItem("", "Color: " + isColor));
formulario.append(new StringItem("", "nº de colores: " + numColors));
//formulario.append(new StringItem("", "altura de imagen: " + alturaImagen));
// Establecemos el comando de salida
formulario.addCommand(exitCommand);
formulario.setCommandListener(this);
}
/**
* startApp
* se ejecuta al inicio de la aplicación
*/
public void startApp() throws MIDletStateChangeException {
// Establecemos el formulario en la pantalla
pantalla.setCurrent(formulario);
}
/**
* pauseApp
* se ejecuta en caso de pausar la aplicación
*/
public void pauseApp() {
}
/**
* destroyApp
* se ejecuta al terminar la aplicación
*/
public void destroyApp(boolean unconditional) {
pantalla.vibrate(5);
}
/**
* commandAction
* captura los comandos.
*/
public void commandAction(Command c, Displayable s) {
if (c == exitCommand) {
destroyApp(false);
notifyDestroyed();
}
}
}