Java Technology for the Wireless Industry (JTWI),JSR 185 定義,**不引入新 API**,而是**規範現有規範的最小必備子集與硬件基線**,強制設備廠商遵守,建立統一的「JTWI 兼容」設備認證體系。
| JSR | 規範 | 版本 | 角色 |
|---|---|---|---|
| 30 | CLDC | 1.0 (可用 1.1 替代) | 核心語言庫、無浮點 (1.0) |
| 118 | MIDP | 2.0 | UI、RMS、Game、多媒體子集、推送、HTTPS、安全域 |
| 120 | WMA | 1.1 | 短信/彩信收發 (javax.wireless.messaging) |
| 135 | MMAPI | 1.0 | 可選:完整多媒體支持 (音視頻錄製播放、MIDI 控制、音效) |
| 指標 | JTWI 要求 | 說明 |
|---|---|---|
| 最大 JAR 大小 | 64 KB | 設備必須支持安裝 ≥64KB 的 Suite |
| 最大 JAD 大小 | 5 KB | |
| RMS 持久化存儲 | 30 KB | 每 Suite 最小可用空間 |
| 堆內存 | 256 KB | 從 MIDP 2.0 基線 128KB 提升 |
| 實時時鐘 (RTC) | 必須 | 支持 PushRegistry.registerAlarm() 定時啟動 |
| 屏幕建議規格 | 128×128 / 12-bit 色深 | 非強制,但建議最小分辨率 |
| 圖片格式 | 必須支持 JPEG | PNG 為 MIDP 強制,JPEG 為 JTWI 新增強制 |
| 網絡協議 | 必須支持 HTTP 1.1 | 含持久連接、Chunked 編碼等 |
| 短信能力 | 必須支持發送/接收 SMS | 基於 WMA 1.1,含文本/二進制/UDH 模式 |
| 電話本集成 | 發送短信時彈出電話本選號 | UI 增強要求 |
| 音頻最小支持 | MIDI + 單音 (Tone) | MMAPI 為可選,但基礎音頻必須內建 |
// 系統屬性檢測
String jtwiVersion = System.getProperty("microedition.jtwi.version"); // "1.0" 表示支持
String mmaSupported = System.getProperty("microedition.mma.version"); // 是否支持完整 MMAPI
// 運行時能力查詢 (MMAPI)
String[] mmaTypes = Manager.getSupportedContentTypes(null);
boolean midiSupported = false;
for (String t : mmaTypes) {
if (t.startsWith("audio/midi")) { midiSupported = true; break; }
}
JTWI 1.0 (2004) → JTWI 1.5 (2005, 加入 CHAPI JSR 211、SATSA JSR 177) → MSA (Mobile Service Architecture, JSR 248),進一步擴展安全、Web Services (JSR 172)、Location (JSR 179)、3D (JSR 184) 等為強制項,成為 2007 年後主流功能機/早期智能機的標準配置。
JTWI 通過**「規範現有規範」**的創新方式,在不發明新技術的前提下,強制統一了設備能力基線,極大緩解了 J2ME 早期的 API 碎片化危機。對開發者而言,以 JTWI 1.0/1.5 作為最低目標平台,配合可選包按需增強,是獲得最大市場覆蓋與最小適配成本的最佳策略。