国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用 Java ME 進行無線消息傳遞

2019-11-18 15:30:23
字體:
來源:轉載
供稿:網友

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。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 钦州市| 和田市| 河北省| 固安县| 资源县| 祁门县| 麻江县| 攀枝花市| 奉化市| 洮南市| 徐汇区| 岢岚县| 巢湖市| 盐边县| 永丰县| 台湾省| 盘山县| 平和县| 新干县| 聊城市| 兴宁市| 连州市| 班戈县| 涟水县| 博野县| 武鸣县| 赣榆县| 绍兴县| 贡山| 桓台县| 建平县| 乐平市| 柯坪县| 海淀区| 东山县| 临夏市| 章丘市| 新野县| 缙云县| 茌平县| 聂荣县|