博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用 Java ME 进行无线消息传递
阅读量:4045 次
发布时间:2019-05-24

本文共 2640 字,大约阅读时间需要 8 分钟。

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

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

 

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

 

无线消息 api

 

    jsr-205 中定义的无线消息 api(wma)2.0 是用于无线消息的一组可选 api.wma 的连接基于通用连接框架,该框架是在基于 的 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) {
}

转载地址:http://vbedi.baihongyu.com/

你可能感兴趣的文章
Yotta企业云盘助力旅游行业新发展
查看>>
Yotta企业云盘助力科技行业创高峰
查看>>
Yotta企业云盘更好地为教育行业服务
查看>>
Yotta企业云盘怎么帮助到能源化工行业
查看>>
企业云盘如何助力商业新发展
查看>>
医疗行业运用企业云盘可以带来什么样的提升
查看>>
教育数字智能化能为现有体系带来新的起点
查看>>
媒体广告业如何将内容资产进行高效地综合管理与利用
查看>>
能源化工要怎么管控核心数据
查看>>
媒体广告业如何运用云盘提升效率
查看>>
企业如何运用企业云盘进行数字化转型-实现新发展
查看>>
司法如何运用电子智能化加快现代化建设
查看>>
设计行业运用企业云盘能带来什么样的变化
查看>>
企业云盘如何让能源电力行业乘上数字化发展列车
查看>>
iSecret 1.1 正在审核中
查看>>
IOS开发的开源库
查看>>
IOS开发的开源库
查看>>
iSecret 1.1 正式发布 Congratulat…
查看>>
深入理解 Docker 镜像 json 文件
查看>>
micro Cloud Foundry和micro Iron Foundry安装的那些事
查看>>