MIDP程序运行时可访问的属性

基于MIDP的应用程序MIDlet,在运行时可以访问2种属性集:系统续行和应用属性。
1.系统属性
系统属性由CLDC定义,可以由JSR扩充,只能读取不能修改。在运行时查询系统属性有2种作用:
(1)表明一个可选包的支持情况
    比如,如果设备支持Location API,那么便有microedition.location.version属性,和其相关的属性值为"1.0",表明遵循JSR-179.
(2)提供平台相关的配置数据
    例如,MIDP 2.0规范有microedition.commports属性,它的属性值是可以用来建立URL的逗号分隔的端口列表,GCF可以使用URL创建javax.microedition.io.CommConnection对象。
    要查询系统属性使用System.getProperty(String key)方法,如下所示:

 import java.lang.*;

 String value;
 String key = "microedition.pim.version";

 value = System.getProperty( key );
 ...
 

JSRProperty NameDefault Value¹
30microedition.platformnull
 microedition.encodingISO8859_1
 microedition.configurationCLDC-1.0
 microedition.profilesnull
37microedition.localenull
 microedition.profilesMIDP-1.0
75microedition.io.file.FileConnection.version1.0
 file.separator(impl-dep)
 microedition.pim.version1.0
118microedition.localenull
 microedition.profilesMIDP-2.0
 microedition.commports(impl-dep)
 microedition.hostname(impl-dep)
120wireless.messaging.sms.smsc(impl-dep)
139microedition.platform(impl-dep)
 microedition.encodingISO8859-1
 microedition.configurationCLDC-1.1
 microedition.profiles(impl-dep)
177microedition.smartcardslots(impl-dep)
179microedition.location.version1.0
180microedition.sip.version1.0
184microedition.m3g.version1.0
185microedition.jtwi.version1.0
195microedition.locale(impl-dep)
 microedition.profilesIMP-1.0
205wireless.messaging.sms.smsc(impl-dep)
205wireless.messaging.mms.mmsc(impl-dep)
211CHAPI-Version1.0


¹(impl-dep) indicates that the default value is implementation-dependent.

2. 应用程序属性
    应用程序属性可以从应用程序描述符JAD以及MIDlet套件的manifest(JAR的一部分)中定义的属性中获得。当你为进行部署而打包程序时进行这些属性的设置,一些属性是部署应用程序所必需的,可以根据需要自行添加属性。考虑一个典型的应用程序描述符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

 

(1)MIDlet-Name、MIDlet-Version、MIDlet-Vendor是清单文件必须提供的属性:

MIDlet-Name:MIDlet Suite的名称
MIDlet-Version:MIDlet Suite的版本号码,其格式为:主版本.次版本.微版本。版本号码可以让应用软件程序管理器知道是否该安装(版本比已安装的还旧),或者是否该更新。
MIDlet-Vendor:提供次MIDlet Suite的厂商名称。

(2)MIDlet-Name、MIDlet-Version、MIDlet-Vendor、MIDlet-Jar-URL、MIDlet-Jar-Size是JAD文件必须提供的属性。

MIDlet-Jar-URL:应用程序管理器要下载代表MIDlet Suite的JAR文件时所应该去的URL地址。可以使用相对地址也可以使用绝对地址。
MIDlet-Jar-Size:代表此MIDlet Suite的JAR文件的大小(以BYTE为单位)。

(3)MIDlet-<n>、MicroEdition-Profile、MicroEdition-Configuration是清单文件或JAD必须提供的属性(也就是说清单文件manifest.mf和JAD文件必须有一个必须提供这3个属性)

MIDlet-<n>:用来描述MIDlet Suite之中MIDlet的信息。n取值从1开始,第一个MIDlet就以MIDlet-1代表(最小从1开始),第二个MIDlet就以MIDlet-2代表,依次类推。套件中有几个MIDlet就应该有几个MIDlet-<n>属性,属性值格式为:程序名, 图标文件名, 类名称(包括包名)
MicroEditon-Profile:执行此MIDlet Suite所需的profile名称及版本。格式如:MIDP-2.0。
MicroEditon-Configuration:执行此MIDlet Suite所需的configuration名称和版本。格式如:CLDC-1.1。

(4)还有一些可选(也可能很重要)的属性,如下所示:

MIDlet-Icon:代表此MIDlet Suite 的图标文件文件名。此图标文件为一个位于JAR文件中的PNG格式图象文件。注意,文件名的大小写有区别。
MIDlet-Description:描述此MIDlet Suite的相关信息。
MIDlet-Info-URL:描述此MIDlet Suite更多相关信息的URL地址。这个属性通常可以让用户在下载MIDlet Suite之前通过此URL查看更多资料,或者也可以和MIDlet类中的platformRequest()方法配合使用。
MIDlet-Data-Size:此MIDlet Suite所需的持久化数据存储所需的存储区的大小。此属性值默认为0。而且所能配置的额外存储区大小常常会根据实体机器的不同而不同。
MIDlet-Delete-Confirm:删除此MIDlet Suite之前,应用程序管理器必须显示出给用户的确认文字。
MIDlet-Install-Notify:应用程序管理器安装此MIDlet Suite之后,用来报告安装结果的URL。
MIDlet-Delete-Notify:应用程序管理器删除此MIDlet Suite之后,用来报告删除结果的URL。

MIDlet-Permissions: 执行此MIDlet的主要权限
MIDlet-Permissions-Opt: 执行此MIDlet的次要权限
MIDlet-Push-<n>: 进行静态注册,格式:<连接URL>,<MIDletClassName>,<过滤器(可以使用通配符)>

(5)自定义属性,不要以MIDlet或MicroEdition开头。

 

    可以通过在MIDlet中调用getAppProperty(String key)方法,来读取描述符中的应用属性,比如"Which-Locale"。下面的示例代码通过查询"MIDlet-Name"属性获取MIDlet套件的名字:
 
 import javax.microedition.midlet.*;

 public class MyMIDlet extends MIDlet {
  private String suiteName;

  public MyMIDlet(){
   suiteName = getAppProperty( "MIDlet-Name" );
   ... // more stuff
  }

  ... // etc.
 }
 

    属性名是大小写敏感的。如果一个属性既没有被描述文件定义也没有被清单文件定义,则返回null。如果描述文件和清单文件中相同属性的定义不同,可以通过下面2种方式中的一种来解决冲突:如果程序是基于MIDP 2.0的可信任的程序,系统将不会安装此程序。否则的话,描述文件中的属性值将覆盖清单文件中的属性值。对于可信任的MIDP 2.0程序,JAD文件和manifest.mf文件中相同属性的定义必须相同。
    当描述符动态生成时应用程序属性是非常有用的。例如,你也以在描述符中嵌入注册码,程序在第一次运行时可以读取注册码并回传给注册服务器,没有必要重新编译或重新打包应用程序。但是不要在描述符中填充大量数据,因为有些平台限制JAD文件的大小(比如5K)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值