首页 > 开发 > Java > 正文

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

2024-07-13 09:55:28
字体:
来源:转载
供稿:网友
,欢迎访问网页设计爱好者web开发。  本文介绍如何在j2me平台和wap页面实现电话呼叫的功能。关于wap和j2me的区别并不在讨论范畴,读者可以自行查阅资料。 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)上测试通过,成功呼叫了指定的电话。

/*
* telemidlet.java
*
* created on 2005年12月15日, 下午9:56
*/

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>

  在midp 2.0和wap平台中都对电话呼叫提供了支持,本文进行了简单的总结,希望对您的实际项目有所帮助。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表