当前位置: 首页 > news >正文

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

作者:mingjava

原文地址:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=1107

本文介绍如何在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函数来呼叫特定的电话号码,代码如下所示:

<inputname="phone_no"format="*m"value="13"/>
<dotype="option"label="呼出号">
<gohref="wtai://wp/mc;$(phone_no)"/>
</do><br/>
或者直接写入电话号码的方式:
<ahref="wtai://wp/mc;1331597312*">拨打电话</a>

在MIDP 2.0和WAP平台中都对电话呼叫提供了支持,本文进行了简单的总结,希望对您的实际项目有所帮助。

相关文章:

  • Linux系统如何更改主机名,即 [root@xxxx] 改成 [root@localhost]
  • 解决Netbeans和Eclipse中的图片路径问题
  • 安装docker-compose时报错Command python setup.py egg_info failed with error code 1 in /tmp/pip-build*的解决
  • 显示一个java跳转页面
  • ImportError: No module named 'ConfigParser' 降级处理即可pip install docker-compose==1.21.2
  • 给你的2D游戏添加3D效果
  • docker2 和docker-compose
  • docker3 docker-compose.yml 文件编写
  • nginx基础1
  • nginx1
  • 承认多元化,保持宽容
  • nginx2
  • 如何编写高质量的代码——来自《代码大全(第2版)》的启示
  • nginx3 gzip等
  • ClickHouse概述
  • 0基础学习移动端适配
  • 3.7、@ResponseBody 和 @RestController
  • 30天自制操作系统-2
  • JavaScript HTML DOM
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Logstash 参考指南(目录)
  • Median of Two Sorted Arrays
  • MQ框架的比较
  • php的插入排序,通过双层for循环
  • spring boot下thymeleaf全局静态变量配置
  • 从PHP迁移至Golang - 基础篇
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 解析 Webpack中import、require、按需加载的执行过程
  • 浏览器缓存机制分析
  • 码农张的Bug人生 - 初来乍到
  • 普通函数和构造函数的区别
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 协程
  • 新书推荐|Windows黑客编程技术详解
  • 用Canvas画一棵二叉树
  • 智能合约Solidity教程-事件和日志(一)
  • postgresql行列转换函数
  • 如何在招聘中考核.NET架构师
  • ​2020 年大前端技术趋势解读
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • #define用法
  • (145)光线追踪距离场柔和阴影
  • (3)(3.5) 遥测无线电区域条例
  • (AngularJS)Angular 控制器之间通信初探
  • (bean配置类的注解开发)学习Spring的第十三天
  • (Python第六天)文件处理
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)