您的位置:首页 > 其它

在J2ME和WAP中实现电话呼叫功能

2010-02-26 13:11 197 查看
MIDP 1.0中没有提供电话呼叫的功能。在MIDP 2.0中,javax.microedition.midlet.MIDlet类提供了platformRequest()方法来请求设备来完成特定的请求,请求的内容由platformRequest()方法的String类型的参数url来标识。可能是调用浏览器打开某个特定的wap页面,也可以是呼叫电话。在设备资源可用的时候,系统会把MIDlet放在后台执行,而把特定的应用程序,例如电话程序或者浏览器放在前台来执行。呼叫电话的时候可以使用如下的形式:

try{

 this.platformRequest("tel:13810000000");

}catch(ConnectionNotFoundException ex){

 ex.printStackTrace();

}

这里提供了一个简单的例子,在Nokia 7610(支持MIDP 2.0)上测试通过,成功呼叫了指定的电话。

package com.j2medev.call;

import javax.microedition.io.ConnectionNotFoundException;

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

/**

*

* @author Administrator

* @version

*/

public class TeleMIDlet extends MIDlet implements CommandListener {

 private Display display = null;

 private List main = null;

 public void startApp() {

if(display == null){

 display = Display.getDisplay(this);

 main = new List("测试电话功能", List.IMPLICIT);

 main.append("13810000000", null);//这里的电话号码是虚拟的

 main.append("13810000001", null);//这里的电话号码是虚拟的

 main.setCommandListener(this);

}

display.setCurrent(main);

 }

 public void pauseApp() {}

 public void destroyApp(boolean unconditional) {}

 public void commandAction(Command cmd,Displayable displayable){

if(cmd == List.SELECT_COMMAND){

 String number = main.getString(main.getSelectedIndex());

 try{ 

this.platformRequest("tel:"+number);

 }catch(ConnectionNotFoundException ex){

ex.printStackTrace();

 }

}

}

}

相比J2ME技术,WAP更类似于Web,是一种服务器端为主的技术。在WML中可以调用设备的WTAI函数来呼叫特定的电话号码,代码如下所示:

<input name="phone_no" format="*m" value="13"/>

<do type="option" label="呼出号">

<go href="wtai://wp/mc;$(phone_no)"/>

</do><br/>

或者直接写入电话号码的方式:

<a href="wtai://wp/mc;1331597312*">拨打电话</a>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: