J2ME 存取通訊錄向來棘手,廠商 API 不一,JSR 75 (PIM API) 為標準化方案但僅支援 06 年後機型。
TextField text = new TextField("電話", null, 12, TextField.PHONENUMBER);
設定 constraint 為 PHONENUMBER,Nokia 底層自動彈出通訊錄選擇器。測試支援:Nokia 6600、N72;不支援:Motorola E680/A1200、SE K700、Nokia 3100。
private void pimVisit() {
String[] names = PIM.getInstance().listPIMLists(PIM.CONTACT_LIST);
try {
for (String name : names) {
ContactList list = (ContactList) PIM.getInstance()
.openPIMList(PIM.CONTACT_LIST, PIM.READ_ONLY, name);
int count = 0;
for (Enumeration e = list.items(); e.hasMoreElements();) {
Contact contact = (Contact) e.nextElement();
String cname = contact.getString(Contact.FORMATTED_NAME, 0);
String tel = contact.getString(Contact.TEL, 0);
// 顯示或處理
count++;
}
list.close();
}
} catch (PIMException e) { /* 處理例外 */ }
}
優勢:不僅可讀取,還可新增/修改/刪除聯絡人,操作更靈活可控。
適用範圍:支援 JSR 75 的裝置 (多為 MIDP 2.0/CLDC 1.1 機型)。