在J2ME開發中,我們經常需要和手機系統進行交互,獲得一些和系統相關的信息,在J2ME API設計中,提供了一系列的系統屬性,可以讓我們來進行獲得,下面就一一進行介紹。
表1 CLDC、MIDP和JTWI屬性
屬性名稱
屬性作用
microedition.profiles
代表手機支持的MIDP版本,返回格式值為“MIDP-1.0”或“MIDP-2.0”
microedition.configuration
代表手機支持的CLDC版本,返回格式值為“CLDC-1.0”或“CLDC-2.0”
microedition.locale
代表手機所在的國家或地區,返回值格式為“en-US”
microedition.platform
代表手機的品牌和型號,Nokia手機的返回值格式為“Nokia6310i/4.42”
microedition.encoding
代表手機默認的字符集名稱,返回值格式為“ISO-8859-1”
microedition.commports
代表手機可以使用的串口列表,返回值中各個串口之間使用逗號分隔
microedition.hostname
MIDP2.0定義,代表本地主機名稱,需要手機支持。
microedition.jtwi.version
代表手機支持的JTWI版本,值必須是“1.0”
表2
可選包屬性
屬性名稱
屬性作用
microedition.media.version
代表手機支持的MMAPI版本,如果不支持則返回null
microedition.pim.version
代表手機支持的PIM API版本,如果不支持則返回null
microedition.m3g.version
代表手機支持的M3G API版本,如果不支持則返回null
microedition.location.version
代表手機支持的Location API版本,如果不支持則返回null
Bluetooth.api.version
代表手機支持的BT API版本,如果不支持則返回null
microedition.io.file.
FileConnection.version
代表手機支持的FC API版本,如果不支持則返回null
microedition.global.version
代表手機支持的Mobile Internationalization API(JSR-238)版本,如果不支持則返回null
microedition.chapi.version
代表手機支持的CH(Content Handler) API(JSR211)版本,如果不支持則返回null
microedition.sip.version
代表手機支持的SIP API版本,如果不支持則返回null
表3 MMAPI屬性
屬性名稱
屬性作用
supports.mixing
代表手機是否支持混音(同時播放多個Player),返回值為“true”或“false”
supports.audio.capture
代表手機是否支持聲音捕獲(錄音),返回值為“true”或“false”
supports.video.capture
代表手機是否支持視頻捕獲(錄像),返回值為“true”或“false”
supports.recording
代表手機是否支持記錄(record),返回值為“true”或“false”
audio.encodings
代表手機支持的聲音格式,返回值格式為“encoding=audio/wav”,多個格式之間使用至少一個空格進行間隔
video.encodings
代表手機支持的視頻格式,返回值格式為“encoding=video/3gpp”,多個格式之間使用至少一個空格進行間隔
video.snapshot.encodings
代表手機使用getSnapshot方法獲得的視頻快照格式,返回值格式為“encoding=png”,多個格式之間使用至少一個空格進行間隔
streamable.contents
代表手機支持的流媒體格式,返回null代表不支持
表4 Wireless Messaging API屬性
屬性名稱
屬性作用
wireless.messaging.
sms.
smsc
代表手機發送短信時的短信服務中心號碼
表5 FileConnection API
屬性名稱
屬性作用
fileconn.dir.photos
代表手機中存儲照片和其它圖片的目錄,例如“file:///c:/My files/ Images /”
fileconn.dir.videos
代表手機中存儲視頻的目錄,例如“file:///c:/My files/Video clips/”
fileconn.dir.tones
代表手機中存儲聲音的目錄,例如“file:///c:/My files/Tones/”
fileconn.dir.memorycard
代表手機中存儲卡的根目錄。例如“file:///d:/”
fileconn.dir.private
(Nokia S40不支持)
代表手機中MIDlet的私有工作目錄,例如“file:///c:/System/MIDlets/[1015f294]/scratch”
fileconn.dir.photos.name
代表手機中圖片目錄的名稱,例如“Images”
fileconn.dir.videos.name
代表手機中視頻目錄的名稱,例如“Video clips”
fileconn.dir.tones.name
代表手機中聲音目錄的名稱,例如“Sound clips”
file.separator
代表手機中的文件分隔符,例如“/”
fileconn.dir.memorycard.name
代表手機中存儲卡的名稱,例如“Memory card”
使用這些屬性,可以獲得在程序運行過程中需要的很多和系統相關的信息,也可以使用表2中的屬性來獲得手機是否支持對應的可選包等信息。
實際使用示例:
String name = System.getProperty(“microedition.platform”); 注意:如果需要獲得JVM或jad文件中的信息,需要使用MIDlet類中的getAppProperty方法,其屬性名則需要查閱jad文件的設定,和本文所述的屬性名無關。