读取MIDlet的系统属性

下面的例子演示了如何在MIDlet中读取系统属性。

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class DetectMIDlet extends MIDlet {

    private static DetectMIDlet instance = null;
    private Display display = null;
    private Displayable form = null;

    public DetectMIDlet() {
        instance = this;
    }

    protected void startApp() {
        if (display == null) {
            //首次启动应用程序
            display = Display.getDisplay(this);
            form = new TestForm();
            display.setCurrent(form);
        } else {
            display.setCurrent(form);
        }
    }

    protected void pauseApp() {}

    protected void destroyApp(boolean unconditional) {}

    public static void quitApp() {
        instance.destroyApp(true);
        instance.notifyDestroyed();
        instance = null;
    }

}


class TestForm extends Form implements CommandListener {

    private Command exit = new Command("退出", Command.EXIT, 0);
    public TestForm() {
        super("J2ME平台测试");
        String s;
        //CLDC版本属性
        s = System.getProperty("microedition.configuration");
        append(getValue("CLDC版本", s));

        //MIPD版本属性
        s = System.getProperty("microedition.profiles");
        append(getValue("MIDP版本", s));

        s = System.getProperty("microedition.platform");
        append(getValue("软件平台", s));

        s = System.getProperty("microedition.encoding");
        append(getValue("系统编码", s));

        s = System.getProperty("microedition.locale");
        append(getValue("区域设置", s));

        s = System.getProperty("microedition.jtwi.version");
        append(getValue("JTWI", s));

        //判断是否支持MMAPI
        s = System.getProperty("microedition.media.version");
        append(getValue("MMAPI", s));

        //判断是否支持WMA

        s = System.getProperty("wireless.messaging.sms.smsc");
        if (s != null) {
            append(getValue("WMA", "支持"));
            append(getValue("SMS", s));
            s = System.getProperty("wireless.messaging.mms.mmsc");
            append(getValue("MMS", s));
        } else {
            append(getValue("WMA", null));
        }

        //判断是否支持蓝牙
        s = System.getProperty("bluetooth.api.version");
        append(getValue("蓝牙", s));

        //判断是否支持个人信息管理
        s = System.getProperty("microedition.pim.version");
        append(getValue("PIM", s));

        //判断是否支持文件系统
        s = System.getProperty("microedition.io.file.FileConnection. version");
        append(getValue("FileConnection", s));

        //判断是否支持SIP
        s = System.getProperty("microedition.sip.version");
        append(getValue("SIP", s));

        //判断是否支持M3G JSR 184
        s = System.getProperty("microedition.m3g.version");
        append(getValue("M3G", s));

        addCommand(exit);
        setCommandListener(this);

    }


    private String getValue(String prompt, String s) {
        return prompt + ":" + (s == null ? "不支持" : s) + "\n";
    }


    public void commandAction(Command c, Displayable d) {
        if (c == exit) {
            DetectMIDlet.quitApp();
        }
    }

}