j2me入门续-Nokia S60平台开发MIDlet的完整过程

来源:互联网 发布:java数据操作权限 编辑:程序博客网 时间:2024/05/17 08:50
本文试图利用前一篇j2me入门中部署的环境,采用eclipse+carbide.j+S60 SDK for java
 
开发一个在Nokia S60平台上运行的示例程序,并发布在tomcat中,通过OTA技术来下载和运行。
 
(1)在eclipse中创建java项目,选择MIDP Project(Nokia SDK plug-in)。
 
(2)新建一个MyHelloMIDlet.java、如下:
 
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
 
public class HelloWorldPlusMIDlet extends MIDlet {
 
    private TextScreen textScreen;
    private TextEditor textEditor;
    private Display display;
 
    public void startApp() {
       if (display == null) {
            display=Display.getDisplay(this);
            textScreen = new TextScreen(this, "First Midlet");
            display.setCurrent(textScreen);
    }
 
    public void pauseApp() {
    }
 
    public void destroyApp(boolean unconditional) {
    }
 
    public void exitRequested(){
        destroyApp(false);
        notifyDestroyed();
    }
 
    public void textEditorDone(String string) {
        if (string != null) {
             textScreen.setCurrentText(string);
        }
        display.setCurrent(textScreen);
    }
 
    public void textEditorRequested() {
        String currentText = textScreen.getCurrentText();
        if (textEditor == null) {
                textEditor = new TextEditor(this, currentText);
        
        } else {
               textEditor.setText(currentText);
        }
        display.setCurrent(textEditor);
    }
}
 
(3)新建文件TextScreen.java和TextEditor.java,从Nokia SDK的S60 examples里有个例子
 
HelloWorldPlus里面有这样两个例子,稍微改动以下就行了。
 
(4)因为项目默认生成一个ant文件,我们这里就采用build.xml文件,改动一下就行了。
 
改动处如下:
 
//改成MyHelloMidlet,注意这里一定要与Midlet类名一致,否则jad找不到执行的Midlet类
<property name="application" value="MyHelloMIDlet" />
//改成包名,此处没有使用包
<property name="package.dir.dot" value="yfhuang." />
//改成包的完整路径,此处没有使用包,所以....
<property name="package.dir.slash" value="yfhuang/" />
 
<target name="run_with_jad" depends="package">
  <antcall target="internal_run">
//此处一定要改为S60Emulator,否则ant会运行报错
   <param name="device" value="S60Emulator" />
  </antcall>
</target>
 
如果没有真正的S60设备,注释掉以下行
<!--property name="ndsj2me.device" value="S60 3rd Edition FP1 SDK for MIDP" /-->
 
(5) 运行ant 任务run_with_jad,应该可以在模拟器中看到First Midlet的内容了。
 
(6) 找到dist目录下的jad文件和MyHelloMIDlet.jar文件,把它发布到Tomcat中去,步骤如下:
 
    6.1 使用tomcat 5.0.16,已经默认支持jad jar wml类型
    
    6.2 拷贝dist的MyHelloMIDlet.jar和MyHelloMIDlet.jad文件到tomcat的webapps的ROOT目录下
 
    6.3 更改MyHelloMIDlet.jad中的jar为绝对路径,如http://localhost/MyHelloMIDlet.jar
 
    6.3 编写一个简单的wml文件,放到webapps的ROOT下,文件内容如下:
 
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "_//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title= "Welcome" id="main">
<p>Software center:</p>
<p align="left">
<a href="MyHelloMIDlet.jad">
MyHelloMIDlet</a></p>
</card>
</wml>
命名为myhellomidlet.xml
 
   6.4 这时运行模拟器,打开URL : http://localhost/myhellomidlet.wml就会出现到MyHelloMIDlet
的链接,打开该链接发现是jad文件,就会激活应用程序管理器安装其中指定的jar文件(因为目前jad
已在本地,由应用程序管理器来识别,所以jad中指定的jar文件一定要用绝对路径。)
 
   6.5 待应用程序安装完毕后,如果用的是S60的模拟器,可以到已经安装的应用程序(installed)
中看到MyHelloMIDlet了,运行它,就会出现First Midlet的字样,而且是可编辑的。