可以在所有支持MIDP2.0版本的手機上運行的手電筒程序。程序?qū)崿F(xiàn)的原理是:利用Display對象來實現(xiàn)對于手機背景等的控制,在該系列的手機中只能實現(xiàn)閃爍背景燈的功能。
實現(xiàn)代碼如下:
//文件名:LightMIDlet.java
package light;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class LightMIDlet extends MIDlet {
static LightMIDlet instance;
LightForm displayable = new LightForm(this);
public LightMIDlet() {
instance = this;
}
public void startApp() {
Display.getDisplay(this).setCurrent(displayable);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public static void quitApp() {
instance.destroyApp(true);
instance.notifyDestroyed();
instance = null;
}
}
//文件名:LightForm.java
package light;
import javax.microedition.lcdui.*;
public class LightForm extends Form implements CommandListener {
StringItem si;
Command cmdOpen;
Command cmdClose;
Command cmdExit;
Display display;
public LightForm(LightMIDlet lm) {
super("手電筒");
si = new StringItem("手電筒狀態(tài):","打開");
this.append(si);
display = Display.getDisplay(lm);
cmdOpen = new Command("打開",Command.OK,1);
this.addCommand(cmdOpen);
cmdClose = new Command("關(guān)閉",Command.CANCEL,1);
this.addCommand(cmdClose);
cmdExit = new Command("退出",Command.EXIT,1);
this.addCommand(cmdExit);
setCommandListener(this);
boolean b;
b = display.FlashBacklight(1000000);
if(b == false){
Alert alert = new Alert("手電筒","您的手機不支持該功能!",null,AlertType.INFO);
alert.setTimeout(3000);
display.setCurrent(alert);
}
}
public void commandAction(Command c, Displayable d) {
//關(guān)閉
if (c == cmdExit) {
// stop the MIDlet
LightMIDlet.quitApp();
}
//打開
if(c == cmdOpen){
display.flashBacklight(1000000);
si.setText("打開");
}
if(c == cmdClose){
display.flashBacklight(0);
si.setText("關(guān)閉");
}
}
}
|
新聞熱點
疑難解答