開發一款「短信發送機」MIDlet:用戶輸入目標號碼、指令內容、發送條數、間隔秒數,程式自動循環發送,適用於測試短信網關、驗證碼壓測等場景。
// 發送文本短信
MessageConnection conn = (MessageConnection) Connector.open("sms://" + phone);
TextMessage msg = (TextMessage) conn.newMessage(MessageConnection.TEXT_MESSAGE);
msg.setPayloadText(content);
conn.send(msg);
conn.close();
接收端可監聽固定端口:Connector.open("sms://:5000")。
Menu。Display 供全局切換畫面。destroyApp 關閉連接釋放資源。List,項目「打開發送機」。SMSForm。NUMERIC)、指令、條數、間隔秒、狀態顯示。Runnable 線程,移除發送命令防止重複點擊。sentCount < totalCount。senderImpl() 發送單條,更新狀態欄「成功發送 第 N 條」。Thread.sleep(interval * 1000) 間隔。IOException 記錄堆棧,不中斷循環(可選重試邏輯)。public void run() {
int total = Integer.parseInt(num.getString());
int interval = Integer.parseInt(timeOut.getString());
while (true) {
if (sms < total) {
senderImpl();
} else {
SMSSenderMIDlet.display.setCurrent(menu);
break;
}
try { Thread.sleep(interval * 1000); }
catch (InterruptedException e) { e.printStackTrace(); }
}
}
| 品牌/機型 | 表現 | 備註 |
|---|---|---|
| Sony Ericsson | 無彈窗,直接發送 | 可設置「總是允許」 |
| Samsung | 無彈窗,直接發送 | 同左 |
| Nokia | 每條彈窗確認 | 需數字簽名或用戶手動授權「總是允許」 |
| Motorola | 視具體固件 | 建議簽名發布 |