1
我的J2ME應用程序具有與手機中的聯繫人進行消息傳遞的功能,以及sim.I測試的應用程序並在諾基亞N70 M和諾基亞C2-02上運行良好。但是不能從諾基亞E5和E72獲取聯繫人。請讓我知道我錯了,錯誤的可能性,給你代碼在這裏...從電話簿和SIM卡的J2ME聯繫人不在諾基亞E5和E72閱讀
public void loadContacts()
{
System.out.println("into show contacts1");
try
{
javax.microedition.pim.ContactList addressbook=null;
javax.microedition.pim.ContactList simaddressbook=null;
PIM pim = PIM.getInstance();
System.out.println("into show contacts2");
String[] allContactLists = PIM.getInstance().listPIMLists(PIM.CONTACT_LIST);
System.out.println("into show contacts3");
for(int ctr=0;ctr<allContactLists.length;ctr++)
{
pim.openPIMList(PIM.CONTACT_LIST, PIM.READ_ONLY,allContactLists[ctr]);
addressbook=(javax.microedition.pim.ContactList)(pim.openPIMList(PIM.CONTACT_LIST, PIM.READ_ONLY));
Contact contact = null;
Enumeration items = null;
items = addressbook.items();
while (items.hasMoreElements()) {
contact = (Contact) items.nextElement();
int telCount = contact.countValues(Contact.TEL);
int nameCount = contact.countValues(Contact.FORMATTED_NAME);
if (telCount > 0 && nameCount > 0) {
String contactName = contact.getString(Contact.FORMATTED_NAME, 0);
for (int i = 0; i < telCount; i++) {
String phoneNumber = contact.getString(Contact.TEL, i);
ContactFetcher contactfetcher=new ContactFetcher();
contactfetcher.setFotmattedName(contactName);
contactfetcher.settelName(phoneNumber);
PersistableManager pm=PersistableManager.getInstance();
pm.save(contactfetcher);
}
}
}
}
if(!nokiaos)
{
simaddressbook=(javax.microedition.pim.ContactList)(PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE,"SIM"));
Contact contact = null;
Enumeration simitems=null;
simitems=simaddressbook.items();
while (simitems.hasMoreElements()) {
System.out.println("into show contacts9");
contact = (Contact) simitems.nextElement();
int telCount = contact.countValues(Contact.TEL);
int nameCount = contact.countValues(Contact.FORMATTED_NAME);
if (telCount > 0 && nameCount > 0) {
String contactName = contact.getString(Contact.FORMATTED_NAME, 0);
for (int i = 0; i < telCount; i++) {
String phoneNumber = contact.getString(Contact.TEL, i);
ContactFetcher contactfetcher=new ContactFetcher();
contactfetcher.setFotmattedName(contactName);
contactfetcher.settelName(phoneNumber);
PersistableManager pm=PersistableManager.getInstance();
pm.save(contactfetcher);
}
}
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
我在這裏檢測手機是否是S60或S40,如果在S60還SIM卡聯繫人s6o那麼只有讀的PIM聯繫人S40。在此先感謝... :)
我從SIM卡中的E72,N70,N73和製造的許多其他舊的諾基亞取接觸類似的問題,我不認爲這是一個代碼錯誤,而這可能是不同的方式還是沒辦法在所有從舊的OS結構讀取。諾基亞是可能回答的問題... – Saqib 2013-03-13 04:22:39