2
如何在J2ME中使用PIM檢索SIM卡和電話簿聯繫人。我試過 PIM.getInstance()。listPIMLists(PIM.CONTACT_LIST); 但它只顯示電話簿聯繫人。J2ME抓取SIM卡聯繫人
如何在J2ME中使用PIM檢索SIM卡和電話簿聯繫人。我試過 PIM.getInstance()。listPIMLists(PIM.CONTACT_LIST); 但它只顯示電話簿聯繫人。J2ME抓取SIM卡聯繫人
可能是這種方法可以幫助你
public static HashLongObject loadContactFromPhone() {
PIM iPim = PIM.getInstance();
String[] allContactLists = iPim.listPIMLists(PIM.CONTACT_LIST);
// Phone or SIM
HashLongObject iPhoneBookList = new HashLongObject();
int i;
for (i = 0; i < allContactLists.length; i++) {
try {
PIMList iPIMList = iPim.openPIMList(PIM.CONTACT_LIST, PIM.READ_ONLY, allContactLists[i]);
Enumeration iPimListEnum = iPIMList.items();
String iContactName, iTelNumber;
String []arrName;
boolean isSupportFormettedName = iPIMList.isSupportedField(Contact.FORMATTED_NAME);
if(isSupportFormettedName) {
while (iPimListEnum.hasMoreElements()) {
try {
Contact iContact = (Contact) iPimListEnum.nextElement();
iContactName = iContact.getString(Contact.FORMATTED_NAME, 0);
iTelNumber = iContact.getString(Contact.TEL, 0);
} catch (Exception e) {
Logger.logStackTrace(e);
continue;
}
long corePhoneNumber = StringUtils.toCCPhoneNumber(iTelNumber);
// Check Duplicate
if (iPhoneBookList.containsKey(corePhoneNumber)) {
continue;
}
iPhoneBookList.put(corePhoneNumber, iContactName);
}
} else {
while (iPimListEnum.hasMoreElements()) {
try {
Contact iContact = (Contact) iPimListEnum.nextElement();
arrName = iContact.getStringArray(Contact.NAME, Contact.ATTR_NONE);
iContactName = "";
if(arrName[Contact.NAME_FAMILY] != null) {
iContactName += arrName[Contact.NAME_FAMILY];
}
if(arrName[Contact.NAME_GIVEN] != null) {
iContactName += arrName[Contact.NAME_GIVEN];
}
iTelNumber = iContact.getString(Contact.TEL, 0);
} catch (Exception e) {
Logger.logStackTrace(e);
continue;
}
long corePhoneNumber = StringUtils.toCCPhoneNumber(iTelNumber);
// Check Duplicate
if (iPhoneBookList.containsKey(corePhoneNumber)) {
continue;
}
iPhoneBookList.put(corePhoneNumber, iContactName);
}
}
} catch (PIMException ex) {
Logger.logStackTrace(ex);
} catch (Exception otherEx) {
Logger.logStackTrace(otherEx);
}
}
return iPhoneBookList;
}
的[你能從J2ME訪問SIM卡聯繫人?](
可能重複http://stackoverflow.com/questions/4955323/can-you-access-sim -contacts-from-j2me) – Nate 2013-02-16 05:19:34
對listPIMLists的調用只返回一個列表? – 2013-02-16 21:04:13
是的,它只返回一個電話簿聯繫人列表。當我嘗試使用simaddressbook =(javax.microedition.pim.ContactList)(PIM.getInstance()。openPIMList(PIM.CONTACT_LIST,PIM.READ_WRITE,「SIM」))來讀取SIM聯繫人時;但它給予空指針異常 – jaya 2013-02-18 10:56:17