1. 圖標顯示:V 系列強制雙配置
- 圖標尺寸**必須 15×15 像素**。
- JAD/Manifest 中**同時**設置 `MIDlet-Icon`(全局圖標)與 `MIDlet-1` 等條目中的圖標屬性。Nokia 僅需 `MIDlet-n` 即可,Motorola 雙缺一不可。
2. RMS 存儲空間:必須顯式聲明
- 默認僅 8KB~12KB,極小。
- 在 JAD/Manifest 添加 `MIDlet-Data-Size: `(如 `65536` 申請 64KB)。
- Motorola 設備最大支持 64KB RMS,超過會安裝失敗。
3. 網絡連接:CMWAP 網關穿透方案
國行 Motorola 手機默認接入點鎖定 **CMWAP**,直連公網 IP 會被網關攔截。兩種解法:
方案 A:用戶端手動切換接入點(零代碼改動)
- 手機設置中新建一個空白接入點(不填任何參數)。
- 將其設置為默認接入點。
- 系統自動識別為 **CMNET** 直連通道,標準 `Connector.open(https://...)` 即可工作。
缺點:需用戶手動操作,適合企業內部/定向發布應用。
方案 B:代碼層面走 CMWAP 代理(通用發布必備)
// 目標資源:https://211.136.87.234/1.png
HttpConnection c = (HttpConnection) Connector.open(
"https://10.0.0.172:80/1.png", Connector.READ, true); // 10.0.0.172 為 CMWAP 代理網關
c.setRequestProperty("X-Online-Host", "211.136.87.234"); // 關鍵:告知代理真實目標主機
c.setRequestProperty("Accept", "*/*");
InputStream is = c.openInputStream();
- 請求發送給代理網關(10.0.0.172:80)。
- `X-Online-Host` 頭部攜帶真實域名/IP,代理轉發請求。
- 此模式兼容所有 CMWAP 環境,無需用戶干預。
4. WTK 1.0.4 打包不支持 MIDP 2.0 API 問題
Motorola 多為 MIDP 2.0 設備,WTK 1.0.4 僅含 MIDP 1.0 API,打包報錯「找不到 MIDP 2.0 類」。
修復步驟
- 打開 Motorola SDK 安裝目錄,找到 `midpapi20.jar`(或同類 MIDP 2.0 API 包)。
- 用 WinRAR 打開 WTK 目錄下 `lib/midpapi.zip` 與 `wtklib/emptyapi.zip`。
- 將 Motorola SDK 的 MIDP 2.0 類文件**直接拖入**這兩個 ZIP 包對應目錄覆蓋/合併。
- 重啟 WTK,打包即可通过。
同理適用於 Nokia 等其他 MIDP 2.0 設備在 WTK 1.0.4 下打包。
總結檢查清單
| 項目 | Motorola 特有要求 | 驗證方式 |
| 圖標 | 15×15 + MIDlet-Icon + MIDlet-n 雙配置 | 真機安裝後桌面顯示 |
| RMS | JAD 中聲明 MIDlet-Data-Size | RecordStore 寫入測試 |
| 網絡 | 代碼支持 CMWAP 代理模式 | 無 WiFi 環境下 2G/3G 測試 |
| 打包 | WTK 注入 MIDP 2.0 API | WTK 無報錯生成 JAD/JAR |
掌握這四點,Motorola J2ME 開發兼容性問題解決 90% 以上。