本文将详细讲解Wireless Messaging API(WMA,JSR120),WMA提供给应用开发者一个通用的API用于开发基于无线消息服务的应用程序,比如短消息服务。目前支持的发送类型为文本和二进制两种。
在讲解WMA的结构和使用方法前,我们先来从感性上熟悉一下WMA。在SUN Wireless Toolkit 20中包括了一个短消息的范例。在运行Demo程序以前我们先看一下jad文件的内容,这可以帮助我们迅速了解应用程序的信息:
CBS-Message-Identifier: 50001
MIDlet-1: SMS Send, /icons/App.png, example.sms.SMSSend
MIDlet-2: SMS Receive, /icons/App.png, example.sms.SMSReceive
MIDlet-3: CBS Receive, /icons/App.png, example.cbs.CBSReceive
MIDlet-Data-Size: 0
MIDlet-Description: This midlet demonstrates SMS and CBS messaging
MIDlet-Jar-Size: 8569
MIDlet-Jar-URL: SMSDemo.jar
MIDlet-Name: SMS Demo
MIDlet-Permissions: javax.microedition.io.PushRegistry, javax.microedition.io.Connector.sms, javax.wireless.messaging.sms.receive,javax.wireless.messaging.sms.send,javax.microedition.io.Connector.cbs,javax.wireless.messaging.cbs.receive
MIDlet-Push-1: sms://:50000, example.sms.SMSReceive, *
MIDlet-Push-2: cbs://:50001, example.cbs.CBSReceive, *
MIDlet-Vendor: Sun Microsystems, Inc.
MIDlet-Version: 2.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
SMS-Port: 50000
从上述信息中我们可以看出,MIDlet套件中共包括三个MIDlet,分别是SMSSend,SMSReceive和CBSReceive。我们最应该关注的是两个MIDlet-Push实体,他们可以使得应用程序监听SMS和CBS消息,当收到消息后AMS将激活相关的MIDlet来进行处理,套件需要使用MIDP2.0的新特性——Push。因此如果想正确运行这个应用程序,必须通过OTA定购的模式进行安装。具体Push实体的属性含义这里不过多进行解释。
WTK提供了WMA Console工具,可以和模拟器配合使用来调试基于无线短消息服务的应用程序。首先我们打开Ktoolbar选择SMSDemo项目,编译并打包后,从Project—>Run via OTA开始安装应用程序,按照提示一步一步进行安装。安装后运行应用程序,系统为它分配手机号码为5550000。
然后我们从WTK中选择Utilities—WMA Console,打开的时候系统会分配一个号码,比如5550001。选择SMS Send在用户界面中输入号码5550001(WMA Console的号码),在消息内容中输入Hello选择发送。这时候我们可以在WMA Console中看到从模拟器中发送过来的消息,如下图所示:
同样,我们也可以使用WMA Console来发送短消息给模拟器,选择Send SMS然后在客户端的电话号码中选择5550000(模拟器的电话号码),端口为50000,在消息中输入How are you?并点击发送按钮。
我们的SMSDemo中使用了Push特性,因此在WMA Console在向模拟器发送短消息数据的时候,AMS会自动激活example.sms.SMSReceive,接收短消息内容。
复制本页网址和标题,发送给你QQ/Msn的好友一起分享
上一篇:J2EE入门教程之一
下一篇:MIDlet Code signing certificates证书申请流程