首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

MIDP 應用屬性詳解:系統屬性與應用屬性完整參考表

     編輯:J2ME

兩類屬性體系

  • 系統屬性:由底層實現寫入,只讀。通過 System.getProperty(String key) 獲取。
  • 應用屬性:定義於 JAD 或 JAR 中的 MANIFEST.MF,可讀可寫(僅運行時內存中)。通過 MIDlet.getAppProperty(String key) 獲取。

系統屬性完整參考表 (按 JSR 標準)

JSR屬性名默認值/說明
30microedition.platformnull (設備平台名)
30microedition.encodingISO8859_1 (默認字符編碼)
30microedition.configurationCLDC-1.0
30microedition.profilesnull
37microedition.localenull (當前語言環境)
37microedition.profilesMIDP-1.0
75microedition.io.file.FileConnection.version1.0 (JSR 75 文件連接 API 版本)
75file.separatorimpl-dep (文件分隔符)
75microedition.pim.version1.0 (PIM API 版本)
118microedition.localenull
118microedition.profilesMIDP-2.0
118microedition.commportsimpl-dep (串口支持)
118microedition.hostnameimpl-dep (主機名)
120wireless.messaging.sms.smscimpl-dep (SMS 服務中心號碼)
139microedition.platformimpl-dep
139microedition.encodingISO8859-1
139microedition.configurationCLDC-1.1
139microedition.profilesimpl-dep
177microedition.smartcardslotsimpl-dep (智能卡槽)
179microedition.location.version1.0 (LBS API 版本)
180microedition.sip.version1.0 (SIP API 版本)
184microedition.m3g.version1.0 (3D API 版本)
185microedition.jtwi.version1.0 (JTWI 規範版本)
195microedition.localeimpl-dep
195microedition.profilesIMP-1.0 (Information Module Profile)
205wireless.messaging.sms.smscimpl-dep
205wireless.messaging.mms.mmscimpl-dep (MMS 服務中心)

註:impl-dep 表示由設備廠商具體實現決定;若設備不支持對應 JSR,調用將返回 null。

應用屬性:JAD 文件示例與讀取代碼

MIDlet-1: HttpWrapperMidlet,,httpwrapper.HttpWrapperMIDlet
MIDlet-Jar-Size: 16315
MIDlet-Jar-URL: HttpWrapper.jar
MIDlet-Name: HttpWrapper
MIDlet-Vendor: Vendor
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
Which-Locale: en  <-- 自定義應用屬性
import javax.microedition.midlet.*;

public class MyMIDlet extends MIDlet {
    private String suiteName;
    public MyMIDlet() {
        suiteName = getAppProperty("MIDlet-Name"); // 讀取標準屬性
        String locale = getAppProperty("Which-Locale"); // 讀取自定義屬性
    }
    // ...
}

屬性查找優先級與覆蓋規則

  1. 大小寫敏感。
  2. 系統屬性 > JAD 屬性 > MANIFEST 屬性(查找順序)。
  3. 若屬性在三處均未定義,返回 null。
  4. 衝突處理:
    • MIDP 2.0 可信應用:JAD 與 MANIFEST 同名屬性值不同 → 安裝失敗(安全機制)。
    • 非可信應用:JAD 值覆蓋 MANIFEST 值(便於配置部署參數)。

實戰建議

  • 利用 JAD 自定義屬性實現免重新編譯的配置變更(如服務器地址、語言、功能開關)。
  • 勿濫用:許多設備限制 JAD 文件大小(如 64KB),屬性條目過多會導致安裝失敗。
  • 類比 J2SE 的 .properties 文件,但更輕量、部署更簡單。

總結

掌握系統屬性表可實現設備能力檢測(如是否支持 JSR 75/179/184);善用應用屬性可實現靈活配置。開發中請始終遵循優先級規則,並注意可信應用的簽名一致性要求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved