1 / 21

《 J2ME 程序开发设计(下) 》 专业教程 理论讲解部分 Ver 3.1

《 J2ME 程序开发设计(下) 》 专业教程 理论讲解部分 Ver 3.1. 课程概述. WMA 编程 蓝牙编程. 重点. 学习目标. WMA 编程. 1. 掌握无线消息的编程 2. 了解 J2ME 蓝牙编程. 难点. 蓝牙编程. 第 4 章 无线消息和蓝牙编程. 第 4 章 无线消息和蓝牙编程. 4.1 WMA编程. 4.1.1 WMA 概述.

zenia
Download Presentation

《 J2ME 程序开发设计(下) 》 专业教程 理论讲解部分 Ver 3.1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 《J2ME程序开发设计(下)》 专业教程 理论讲解部分 Ver 3.1

  2. 课程概述 WMA编程 蓝牙编程 重点 学习目标 WMA编程 1.掌握无线消息的编程 2.了解J2ME蓝牙编程 难点 蓝牙编程 第4章 无线消息和蓝牙编程

  3. 第4章 无线消息和蓝牙编程 4.1 WMA编程 4.1.1 WMA概述 WMA(无线消息,Wireless Message API)是一个基于GCF的可选包,因为它所要求的最低configuration为CLDC,因此它也可以移植到CDC上面去。在可发送接收无线消息的诸如手提电话设备上运行的J2ME应用程序都可以得到WMA的支持。

  4. 4.1 WMA编程 4.1.2 WMA API的总体结构

  5. 4.1 WMA编程 4.1.2 WMA API的总体结构

  6. 4.1 WMA编程 4.1.3WMA中的异常 当使用WMA的时候,可能会碰到需要处理的异常。比如当创建MessageConnection的时候,当应用程序缺乏足够的权限的时候或者平台没有足够的资源的时候,都有可能抛出异常。 详见教材表4-2

  7. 4.1 WMA编程 4.1.4 Message接口 • javax.wireless.messaging.Message是WMA中各种消息的基类。所谓消息,就是通讯双方发送和接收、产生和消费的东西。 • 在某种程度上,消息类似于数据报,它有源地址和目的地址、载荷、发送和阻塞方法。WMA提供了更多的附加功能,比如支持文本消息和二进制消息,还有异步接收消息的听众(Listener)接口。 • WMA定义了2个Message子接口:BinaryMessage和TextMessage,而且规范是可扩展的,允许增加更多的消息类型。 • 至于消息和相关的控制信息是如何编码来进行传输,这一点WMA并不关心,它交给底层的通讯协议负责。

  8. 4.1 WMA编程 4.1.4 Message接口 • BinaryMessage接口代表以二进制为内容的消息,包括相应的获取和设置方法。通用的获取和设置消息地址、获取时间戳等方法则继承于Message。 • TextMessage子接口代表以文本为内容的消息,例如文本短消息。TextMessage提供方法设置与获取文本内容(String对象)。在消息发送和接收之前,底层负责把这个String编码或者解码成正确的格式。例如GSM 7-bit或者UCS-2。通用的获取和设置消息地址,获取时间戳等方法则继承于Message。

  9. 4.1 WMA编程 4.1.5 MessageConnection接口

  10. 4.1 WMA编程 4.1.5 MessageConnection接口 创建客户端连接: (MessageConnection)Connector.open("sms://+5121234567:5000"); 创建服务端连接: (MessageConnection)Connector.open("sms://:5000");

  11. 4.1 WMA编程 4.1.6 MessageListener接口 该接口中只有一个方法notifyIncomingMessage(),当接收到一个消息的时候,平台就激发该方法。 使用MessageConnection.setListener()方法来注册消息听众。 因为平台实现有可能是单线程,notifyIncomingMessage方法的处理时间要尽可能缩短,最好用单独的线程来处理方法所接收到的消息。

  12. 4.1 WMA编程 4.1.7 使用WMA来发送和接收消息 1.创建MessageConnection public MessageConnection newMessageConnection(String addr) throws Exception { return((MessageConnection)Connector.open(addr)); }

  13. 4.1 WMA编程 4.1.7 使用WMA来发送和接收消息 2.创建,发送文本消息 TextMessage tmsg =(TextMessage)mc.newMessage (MessageConnection.TEXT_MESSAGE); if (url!= null) tmsg.setAddress(url); tmsg.setPayloadText(msg); mc.send(tmsg);

  14. 4.1 WMA编程 4.1.7 使用WMA来发送和接收消息 3.创建,发送二进制消息 BinaryMessage bmsg = (BinaryMessage)mc.newMessage (MessageConnection.BINARY_MESSAGE); if (url!= null) bmsg.setAddress(url); bmsg.setPayloadData(msg); mc.send(bmsg);

  15. 4.1 WMA编程 4.1.7 使用WMA来发送和接收消息 4.接收消息 MessageProcessor的类,该类实现Runnable接口等待和处理消息。 注意:MessageProcessor既支持单次的消息处理,也支持循环的消息处理。 可以对来源于连接的所有消息使用同一个MessageProcessor处理(这样线程会阻塞直到消息到达,然后处理消息), 也可以使用一个MessageListener对接收到的每一个消息采用一个单消息处理的Message processor。 详见教材代码

  16. 4.1 WMA编程 4.1.7 使用WMA来发送和接收消息 4.接收消息 MessageConnection的numberOfSegments()方法来获取消息分批发送的次数 还可以通过获取wireless.messaging.sms.smsc系统属性来获取短信息服务中心的地址: String smsc = System.getProperty("wireless.messaging.sms.smsc"); 详见教材代码

  17. 4.1 WMA编程 源代码剖析: WMADemo项目

  18. 第4章 无线消息和蓝牙编程 本课小结 本课介绍了WMA的体系结构,WMA的常用编程模式,然后用一个完整的例子演示了WMA的使用。

  19. 第4章 无线消息和蓝牙编程 小测验 问答题: 1.WMA中,Message类的两个子类是? 2.MessageConnection和GCF的关系如何? 3.如何使用教材中的MessageProcessor类

  20. 小测验 问答题: 1.WMA中,Message类的两个子类是? 答:TextMessage,BinaryMessage 2.MessageConnection和GCF的关系如何? 答:MessageConnection是Connection的子接口,由Connector打开 3.如何使用教材中的MessageProcessor类 答:可以对来源于连接的所有消息使用同一个MessageProcessor处理(这样线程会阻塞直到消息到达,然后处理消息)也可以使用一个MessageListener对接收到的每一个消息采用一个单消息处理的Message processor。

  21. 第4章 无线消息和蓝牙编程 课后作业 【作业1】剖析WMADemo项目,并且把它放到真机上运行

More Related