在功能機時代,J2ME MIDP 2.0 與 WAP/WML 均提供調用手機撥號器的標準機制。本文對比兩種技術棧的實現方式、代碼示例與適用場景,為維護舊系統或理解移動端調用系統能力演進提供參考。
MIDlet.platformRequest()public final void platformRequest(String url) throws ConnectionNotFoundException
tel:<phone-number>。ConnectionNotFoundException — 設備不支持該 Scheme 或無撥號應用。package com.j2medev.call;
import javax.microedition.io.ConnectionNotFoundException;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class TeleMIDlet extends MIDlet implements CommandListener {
private Display display = null;
private List main = null;
public void startApp() {
if (display == null) {
display = Display.getDisplay(this);
main = new List("測試電話功能", List.IMPLICIT);
main.append("13810000000", null); // 虛擬號碼
main.append("13810000001", null);
main.setCommandListener(this);
}
display.setCurrent(main);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
public void commandAction(Command cmd, Displayable displayable) {
if (cmd == List.SELECT_COMMAND) {
String number = main.getString(main.getSelectedIndex());
try {
this.platformRequest("tel:" + number); // 關鍵調用
} catch (ConnectionNotFoundException ex) {
ex.printStackTrace();
// 可彈出 Alert 提示用戶設備不支持
}
}
}
}
tel: 為標準 Scheme (RFC 3966),部分設備支持 tel:+86-138... 國際格式。paused,撥號結束用戶返回應用時觸發 startApp()。wtai://wp/mc (Wireless Telephony Application Interface)WML 卡片/模板中通過錨點 <a> 或任務 <go> 使用 wtai://wp/mc;<number> URL 喚起撥號。
<a href="wtai://wp/mc;1331597312*">撥打電話</a>
<input name="phone_no" format="*m" value="13"/>
<do type="option" label="呼出號">
<go href="wtai://wp/mc;$(phone_no)"/>
</do><br/>
format="*m" 限制輸入數字/*, # 等撥號字符;$(phone_no) 為變量引用。
wtai://wp/sd;<number> — 發送 DTMF 音 (撥號後控制語音菜單)。wtai://wp/ap;<number> — 添加電話簿條目。| 維度 | J2ME MIDP 2.0 | WAP/WML |
|---|---|---|
| 技術層級 | 客戶端原生應用 (MIDlet) | 服務端頁面描述 (WML 卡片) |
| 調用 API | MIDlet.platformRequest("tel:...") | <a href="wtai://wp/mc;..."> |
| 部署方式 | OTA 安裝 JAD/JAR 到手機 | WAP Gateway 瀏覽 URL |
| 交互體驗 | 豐富 UI (List, Form, Canvas)、事件驅動、離線邏輯 | 簡單卡片跳轉、表單提交、依賴網絡 |
| 安全/權限 | 簽名域控制、彈窗確認 | 瀏覽器/網關信任域、WTLS 通道加密 |
| 適用場景 | 複雜業務邏輯、本地緩存、游戲/工具類應用 | 輕量信息查詢、營銷活動、無需安裝即用 |