檢查JSR支持
檢查JSR的支持簡單的方式有兩種:
1. 是通過System.getProperty("property_name")的方式進行判斷,一般如果存在相關的APIs支持,它會返回一個非null字符串。
檢測代碼
System.getProperty(property_key);
public String getInfo(String info) {
if (info == null) {
return "<unknown>";
} else {
return info;
}
}
2. 通過Class.forName(clase_name)的方式。
private boolean hasClassExit(String aClassName) {
try {
Class.forName(aClassName);
return true;
} catch (Exception e) {
return false;
}
}
上面的檢測代碼相對比較簡單,而且也容易理解,關鍵是那些JSR 支持的屬性名稱,或者APIs的寫法。
下面是部分屬性名稱,僅供參考。
System property
Description
Value
microedition.platform
Defined in CLDC 1.0 and CLDC 1.1.
microedition.encoding
Always returns ISO-8859-1.
microedition.configuration
Defined in CLDC 1.0 and CLDC 1.1.
microedition.profiles
依賴於底層實現
microedition.locale*
JSR 37
依賴於底層實現
microedition.commports
依賴於底層實現
microedition.hostname
localhost
microedition.profiles
MIDP2.0
file.separator
文件分割符
依賴於底層實現(/,\)
microedition.pim.version
JSR 75
1.0
microedition.smartcardslots
JSR 177
依賴於底層實現
microedition.location.version
JSR 179
1.0
microedition.sip.version
JSR 180
1.0
microedition.m3g.version
JSR 184
1.0
microedition.jtwi.version
JSR 185
1.0
wireless.messaging.sms.smsc
JSR 205
依賴於底層實現
wireless.messaging.mms.mmsc
JSR 205
依賴於底層實現
CHAPI-Version
JSR 211
JSR 211
Nokia的一些系統參數
com.nokia.Network.Access
網絡參數
pd - GSM
pd.EDGE - EDGE
pd.3G - 3G
pd.HSDPA - 3G
csd - GSM CSD/HSCSD
bt_pan - Bluetooth PAN network
wlan - WIFI
na - 無任何網絡
com.nokia.mid.dateformat
日期格式
Yy/mm/dd
com.nokia.mid.timeformat
時間格式
hh:mm
com.nokia.memoryramfree
動態內存分配
Note: S60 第3版不支持
com.nokia.mid.batterylevel
電池狀態
com.nokia.mid.countrycode
城市代碼
com.nokia.mid.Networkstatus
網絡工作狀態
com.nokia.mid.Networkavailability
網絡是否激活狀態
com.nokia.mid.Networkid
網絡ID
返回2個值
Network ID
網絡簡稱
com.nokia.mid.Networksignal
com.nokia.mid.cellid
Cellid
基站信息ID
com.nokia.mid.imei
Imei號
手機唯一標識號
com.nokia.mid.imsi
應用程序屬性
應用程序屬性值是在應用程序描述符文件或者MANIFEST文件中定義的,當我們部署應用程序的時候可以定義應用程序屬性。比如下面是一個典型的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
其中Which-Locale就是應用程序屬性值,我們可以通過MIDlet的成員方法getAppProperty()來得到它,代碼片斷如下:
import Javax.microedition.midlet.*;
public class MyMIDlet extends MIDlet {
private String suiteName;
private String which_locale;
public MyMIDlet(){
suiteName = getAppProperty( "MIDlet-Name" );
which_locale = getAppProperty("Which-Locale");
}
//這裡省略了其他代碼
}
屬性值對大小寫是敏感的,如果屬性值在底層系統、JAD文件和Manifest文件中都沒有定義的話,那麼將返回Null。