部分手機限制同時開啟的網路連線數。應用若依賴多連線,在不支援的設備上會崩潰。解決之道:在 JAD 中聲明設備最大連線數,執行期動態檢查。
MIDlet-1: Foo, , Foo MIDlet-Jar-Size: 7063 MIDlet-Jar-URL: foo.jar MIDlet-Name: Foo MIDlet-Vendor: Yoyodyne Inc. MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.1 MicroEdition-Profile: MIDP-2.0 Device-Max-Connection: 3
String maxConnStr = getAppProperty("Device-Max-Connection");
int deviceMaxConnection = Integer.parseInt(maxConnStr);
int openConnections = 0; // 全域變數
if (openConnections < deviceMaxConnection) {
HttpConnection conn = (HttpConnection) Connector.open(uri);
openConnections++;
// 使用連線...
} else {
// 處理超限:排隊、拋出異常或降級
}
conn.close();
openConnections--;
int count = 0;
try {
while (true) {
Connector.open("https://tools.ietf.org/html/rfc262" + count);
count++;
}
} catch (Exception e) {
// 例外發生時 count 即為最大連線數
// 將此值寫入 JAD 供下次使用
}
Device-Max-Connection,啟動時讀取並快取。