首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

J2ME Wireless Messaging API (WMA) 完整指南

     編輯:Java 程式設計入門

簡介

Wireless Messaging API (WMA) 是 J2ME 選擇性套件之一,基於 Generic Connection Framework (GCF),讓行動裝置透過無線網路(GSM/CDMA)收發簡訊(SMS)與小區廣播(CBS),支援文字與二進位資料。

核心架構

  • 定義於 javax.wireless.messaging 套件,提供全新介面取代 GCF 的 Datagram 介面(後者針對 UDP 設計)。
  • 核心介面:MessageConnection、TextMessage、BinaryMessage。

建立連線

透過 Connector.open(url) 取得 MessageConnection,URL 格式範例:

  • sms://+417034967891 — 發送至指定號碼
  • sms://+417034967891:5678 — 指定號碼與埠號
  • sms://:5678 — 本機埠,用於接收
  • cbs://:5678 — 監聽 CBS 廣播
MessageConnection conn = (MessageConnection) Connector.open("sms://+417034967891");

發送訊息

文字訊息

public void sendText(MessageConnection conn, String text)
    throws IOException, InterruptedIOException {
    TextMessage msg = conn.newMessage(conn.TEXT_MESSAGE);
    msg.setPayloadText(text);
    conn.send(msg);
}

二進位訊息

public void sendBinary(MessageConnection conn, byte[] data)
    throws IOException, InterruptedIOException {
    BinaryMessage msg = conn.newMessage(conn.BINARY_MESSAGE);
    msg.setPayloadData(data);
    conn.send(msg);
}

長度限制:單則 SMS 文字 160 字元(7-bit)或 70 字元(UCS2),二進位 140 位元組。WMA 要求支援訊息串聯,實際上限至少為三倍。

可用 numberOfSegments() 判斷需分割段數。

接收訊息

開啟伺服器連線(無需指定目標號碼),呼叫 receive() 封鎖等待訊息:

MessageConnection serverConn = (MessageConnection) Connector.open("sms://:5678");
Message msg = serverConn.receive(); // 封鎖直到收到訊息
if (msg instanceof TextMessage) {
    String text = ((TextMessage) msg).getPayloadText();
    // 處理文字訊息
}

另一執行緒關閉連線可中斷封鎖。

應用場景

WMA 讓 J2ME 應用具備雙向簡訊能力,適用於行動銀行驗證碼、遠端指令控制、位置回報、廣播資訊接收等場景,是早期行動增值服務開發關鍵技術。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved