JSR 205 定義 Wireless Messaging API 2.0,基於 Generic Connection Framework,提供高層抽象:建立訊息 → 發送 → 接收,完全屏蔽傳輸層細節。向後相容 WMA 1.1 (JSR 102),新增 MMS 支援。
| 類型 | 介面 | 特點 |
|---|---|---|
| 文字訊息 (SMS) | TextMessage | 最普及,Payload 為純文字。 |
| 二進制訊息 | BinaryMessage | 任意位元組陣列,適用協議封包、遊戲資料。 |
| 多媒體訊息 (MMS) | MultipartMessage | 多部分內容:文字、圖片、音訊、視訊。 |
| 小區廣播 | 唯讀 | 基地台廣播,單向,WMA 僅支援接收。 |
try {
String addr = "sms://+886912345678";
MessageConnection conn = (MessageConnection) Connector.open(addr);
TextMessage msg = (TextMessage) conn.newMessage(MessageConnection.TEXT_MESSAGE);
msg.setPayloadText("Hello from J2ME!");
conn.send(msg);
} catch (Exception e) { /* 錯誤處理 */ }
// 於特定 port 監聽
String addr = "sms://:5432";
MessageConnection conn = (MessageConnection) Connector.open(addr);
// 需實作 MessageListener 接口,notifyIncomingMessage() 回調中讀取
Message msg = conn.receive();
if (msg instanceof TextMessage) {
String text = ((TextMessage) msg).getPayloadText();
// 回覆...
}
byte[] data = "Hello".getBytes();
MessageConnection conn = (MessageConnection) Connector.open("sms://+886912345678");
BinaryMessage bm = (BinaryMessage) conn.newMessage(MessageConnection.BINARY_MESSAGE);
bm.setPayloadData(data);
conn.send(bm);
WMA 簡單強大,讓 SMS/MMS 成為行動應用開發工具箱中的標準工具。適合遊戲、企業行動化、即時通訊等場景。