j2me调用系统程序方法:platformRequest
try {
javax.microedition.midlet.MIDlet.platformRequest("http://xxx.xxx");
} catch (ConnectionNotFoundException ex) {
}
http就是调用系统的浏览器浏览了,
tel:就是调用系统打电话了。
MIDlet.platformRequest方法可以支持很多的应用调用(如tel、fax、http访问无线网络等)或者应用的安装,但是具体的使用情况要看具体的手机提供商是否在手机上提供此类的功能了。
详细的解释:
一、调用过程:
调用platformRequest方法后,用指定的URL表示的请求被发给了设备:
情况1:
当手机平台上相应的能力并且具有有效资源的话,手机设备“可以”将用于处理请求的相应应用调入到前台,并使用户和它进行交互,同时保持当前的MIDlet suite在后台运行。
情况2:
如果设备平台没有相应的能力或者没有有效资源,则它“可能”等待处理这个URL请求直到发出该请求的MIDlet suite退出。在这种情况下,当发出要求的MIDlet suite退出时,设备平台“必须”将后台的应用(如果存在的话)切换到前台,以恢复其与用户的交互。
二、方法调用的影响:
platformRequest是一种非阻塞的方法,所以该方法不能够将多个请求进行排队。在请求被处理前MIDlet suite必须退出的平台只能处理最后的一个请求。而在MIDlet suite和请求能够同时处理的平台,每个发自MIDlet suite的请求必须被实时的传送给平台软件来处理。
如果URL所描述的请求引用了一个MIDlet suite(无论是一个应用程序描述还是一个jar文件),处理这个请求的应用将解释URL,将其作为安装某个package的请求。在这种情况下,平台将进行一般MIDlet suite安装,用户也将控制这个安装过程(包括取消安装、下载、确认安装)。如果被安装的MIDlet suite是当前运行的MIDlet suite的更新版本,则在执行升级之前,平台将停止当前运行的低版本MIDlet suite。有一些平台,在安装进行之时当前运行的MIDlet suite可能需要停止。
如果URL描述的内容是一种tel:<number>的方式,这种方式在RFC2806中有所描述。平台必须解释这个URL 将它作为初始化语音呼叫的请求。如果平台提供“电话”程序,则这个请求必须被传送到“电话”应用程序去处理。如果平台提供此功能,则必须具备能够建立本地和全局电话呼叫的能力,并执行DTMF(电话管理功能)传送拨号。但,并不是所有的RFC2806定义的URL格式都被实现,尤其是区号或者电话终端需要的内容。isdn子网,服务提供商和扩展特性可能被忽略掉。
而且设备可以选择性的支持不在上面列表中的URL的附加定义。
platformRequest方法可能会对用户的经济造成影响,比如使用无线网络、或者语音呼叫。所以在程序执行之前,平台必须获得用户的允许。这个获得用户允许的实现方式是比较自由的。例如在一些平台上每次询问用户时出现一个对话框。而另外一些平台可能执行相应的应用程序,弹出URL或者电话号码的输入字框并保持静止等待状态,直到用户点击装载或者拨号按钮后才执行。