Java资源网

| JAVA基础 | 环境配置 | JDBC | 线程技术 | Socket编程 | JavaMail | JAVA与XML | 设计模式 | 技术新闻 | Java认证 | 程序人生 软件下载
| JSP&Servlet | Spring | Struts | Hibernate | JBuilder | Eclipse | WebService | EJB技术 | J2ME开发 | 应用服务器 | JXTA | Ajax
Articles search文章搜索
   关键字:
   类 别:
       
New download 最新下载
· [组件]HTML Parser 1.5
· [教程]WebSphere Studio应用教程
· [组件]JDom 1.0
· [工具]Junit3.8.1
· [教程]EJB编程及J2EE系统架构和设计
· [教程]EJB教程
· [教程]J2EE Tutorial中文版
· [教程]Java编程思想2(英文)
· [教程]java编程思想(完整版)
· [教程]Java网络编程
New articles 最新文章
· 设计移动 Web 服务
· 解析XML的时候完全忽略DTD
· 理解XML Schema XML Schema 初步
· 标签库的深入研究
· 提升JSP应用程序的七大绝招
· 如何使用JDOM对XML文件进行操作
· 处理XML字符串中特殊字符
· 利用Digester把XML转换成为Java对象
· 使用WebService 和RMI远程协作
· 使用Axis开发Web Service程序
Articles top 热门文章
· Eclipse基础--plugin插件安装(6644)
· eclipse+tomcat+lomboz的安装配置说明(4774)
· Java程序员就业前景(4584)
· Windows下JAVA环境变量的设置祥解(3788)
· Tomcat下JSP、Servlet和JavaBean环境的配置(3716)
· 使用links方式安装Eclipse插件(3698)
· 一个老程序员的心理话(3533)
· linux下jdk的安装与配置(3459)
· 初学者入门:Structs中基本配置入门(3334)
· Eclipse 运行命令行参数大全(3084)
您的位置:首页>>J2ME开发>>用 Java ME 进行无线消息传递
用 Java ME 进行无线消息传递
2007-04-17   来源:www.javaresearch.org  作者:未知

2006 年 12 月 31 日

学习 Java™ Micro Edition(Java ME)无线消息 API。这个专栏将从几个简单的代码示例开始,随后讨论它为企业开发人员带来的各种机会。

    移动电话最常见的一个特性就是消息传递。文本消息或短消息(SMS)自引入之初,已经变得越来越流行。当然,多媒体消息(MMS)又为其增加了图片、声音和视频等多媒体内容。

    在 MMS 刚出现时,有些专家预言它会取代 SMS,如果它的价格不是这么高的话,这个预言确实有可能会成为现实。即便如此,这种能在手机之间传递多媒体内容的功能还是渐受青睐。最近手机电子邮件的成功,意味着未来手机消息传递的主要形式可能是电子邮件,但是要到那一步还有很长的一段路要走。

    本月,我将讨论 Java ME 无线消息 API.我将从几个简单的编码示例开始,随后讨论它为企业开发人员带来的各种机会。

无线消息 API

    JSR-205 中定义的无线消息 API(WMA)2.0 是用于无线消息的一组可选 API.WMA 的连接基于通用连接框架,该框架是在基于 CLDC 的 Java ME 架构中进行通信的基础。WMA 2.0 向后兼容 WMA 1.1,添加了对发送和接收多媒体消息的支持。换句话说,无线消息 API 提供了无线通信的高级抽象。它将传输层完全隐藏,因而所要做的工作只是创建消息、发送消息和接收消息。

    WMA 支持文本消息、小区广播和多媒体消息。文本消息很简单,大多数人都知道它是什么。SMS 消息极为流行,而且已经成为日常生活的一部分。WMA 支持发送和接收文本消息。发送非常简单:只需定义目标地址和文本,文本被称为净荷(payload)。接收稍微复杂些,因为需要应用程序能够侦听进入的消息。在下面的示例中将看到如何读取进入的消息。

消息内容

    二进制消息顾名思义就是带有二进制内容的消息。内容可以是要传递给应用程序或者从应用程序传递给其他客户机或服务器的任何内容。多部分消息可以包含多块媒体,例如文本、音频和视频。

    小区广播可能是最不为人所知的消息类型。小区广播服务是一种数据服务,在这种服务中,消息由基站广播,由侦听这个基站的每个移动站接收。这个服务是单向的,这意味着 WMA 只能用来接收这类消息。

发送和接收

发送文本消息很简单。步骤如下:

  • 设置手机号码(地址)。
  • 用 Connector 接口创建 MessageConnection。
  • 创建新消息,并把它的类型转换成 TextMessage。
  • 设置净荷。
  • 通过调用 send() 方法并向方法传递 Message 实例,发送消息。

    发送的消息中包含的发送人信息,与正常发送消息时的相同。清单 1 显示了使用 Java ME WMA 发送消息的代码。


清单 1. 发送消息
				try {   String addr = ?ms://+358401234567?   MessageConnection conn = (MessageConnection) Connector.open(addr);   TextMessage msg =    (TextMessage)conn.newMessage(MessageConnection.TEXT_MESSAGE);   msg.setPayloadText(?his is a test message!?;   conn.send(msg); } catch (Exception e) { ... } 
    接收文本消息略微复杂,但也不是太复杂。在一个端口上打开 MessageConnection (在这个示例中是 5432)并从 MessageConnection 读取进入的消息。可以用 instanceof 测试消息的类型。要接收有消息进入的通知,应用程序必须实现 MessageListener 接口,所以要编写比 清单 2 更复杂一些的代码,才能让它真正工作。


清单 2. 接收消息
				try {   String addr = ?ms://:5432?   MessageConnection conn = (MessageConnection) Connector.open(addr);   Message msg = null;   while (someExitCondition) {     msg = conn.receive();     if (msg instanceof TextMessage) {            TextMessage tmsg = (TextMessage)msg;            String receivedText = tmsg.getPayloadText();            // respond with the same text with ?hanks.?     tmsg.setPayloadText(?hanks?;      conn.send(tmsg);     } else {        // Received message was not a text message, but e.g. binary        ...     }   } // end while  } catch (Exception e) {    ... } 
    发送二进制消息与发送文本消息很相似。首先需要把数据放在字节数组中,然后创建 MessageConnection(如 清单 3 所示),并创建 BINARY_MESSAGE。


清单 3. 发送二进制消息
				try {  String str = "Hello!";  byte[] msg = str.getBytes();  String addr = "sms://+358401234567";   MessageConnection conn = (MessageConnection) Connector.open(addr);       BinaryMessage bm = (BinaryMessage)mc.newMessage                     (MessageConnection.BINARY_MESSAGE);  if (url!= null)    bm.setAddress(url);    bm.setPayloadData(msg);    conn.send(bm);    }  catch(Exception e) {}

    如果想学习使用 WMA 编写代码的更多内容,请参阅本文末尾的 参考资料。现在,我把重点放在 WMA 的潜在应用上。

 

  --相关文章--
· 详细介绍手机游戏中的声音处理 (2007-04-17)
· 让JavaME程序实现真正Run Anywhere (2007-04-17)
· 端到端J2ME应用开发实例——介绍Smart Ticket (2007-04-17)
· 移动开发谁领风骚 J2ME开发工具面面观 (2007-04-17)
· 用NetBeans平台开发J2ME游戏实例讲解3 (2007-04-17)
· 用NetBeans平台开发J2ME游戏实例讲解2 (2007-04-17)

版权所有©2005-2006 JAVA资源网 渝ICP备05007591号 虚拟主机 | 关于我们 | 联系方式 | 广告业务 | 网站地图 | 友情链接