2013-02-18 66 views
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。在此先感謝... :)

+0

我從SIM卡中的E72,N70,N73和製造的許多其他舊的諾基亞取接觸類似的問題,我不認爲這是一個代碼錯誤,而這可能是不同的方式還是沒辦法在所有從舊的OS結構讀取。諾基亞是可能回答的問題... – Saqib 2013-03-13 04:22:39

回答

2

我已經解決了最後,我錯過了存儲聯繫人的命名約定的國王。代碼如下所示: - 同樣在諾基亞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"); 

    pim.openPIMList(PIM.CONTACT_LIST, PIM.READ_ONLY,allContactLists[0]); 
    addressbook=(javax.microedition.pim.ContactList)(pim.openPIMList(PIM.CONTACT_LIST, PIM.READ_ONLY)); 
    Contact contact = null; 
     Enumeration items = null; 
     items = addressbook.items(); 
     if(addressbook.isSupportedField(Contact.FORMATTED_NAME) && addressbook.isSupportedField(Contact.TEL)) 
     { 
      while (items.hasMoreElements()) { 
      System.out.println("into show contacts9"); 
      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); 

         ContactPerson.addElement(contactName);  
         Telephone.addElement(phoneNumber); 
         Imagedata.addElement(""); 

        } 
       } 
      } 
     } 
     else 
     { 
      while (items.hasMoreElements()) { 
      contact = (Contact) items.nextElement(); 
      String contactName=""; 
      contactName = contactName+contact.getStringArray(Contact.NAME, 
       Contact.ATTR_NONE)[Contact.NAME_FAMILY]; 

      if(contactName.equals("null")) 
      { 
       contactName = contact.getStringArray(Contact.NAME, 
         Contact.ATTR_NONE)[Contact.NAME_GIVEN]; 
      } 
      String phoneNumber=contact.getString(Contact.TEL, Contact.ATTR_NONE); 
      if (contactName!=null && phoneNumber!=null) 
      {   
         ContactPerson.addElement(contactName);  
         Telephone.addElement(phoneNumber); 
         Imagedata.addElement(""); 

      } 
      } 
     } 


    if(!nokiaos) 
    { 
     simaddressbook=(javax.microedition.pim.ContactList)(PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE,"SIM")); 
    Contact contactsim = null; 
    Enumeration simitems=null; 
    simitems=simaddressbook.items(); 
    if(simaddressbook.isSupportedField(Contact.FORMATTED_NAME) && simaddressbook.isSupportedField(Contact.TEL)) 
    { 
     while (simitems.hasMoreElements()) { 
      System.out.println("into show contacts9"); 
      contactsim= (Contact) simitems.nextElement(); 
      int telCount = contactsim.countValues(Contact.TEL); 
      int nameCount = contactsim.countValues(Contact.FORMATTED_NAME); 
      if (telCount > 0 && nameCount > 0) { 
       String contactName = contactsim.getString(Contact.FORMATTED_NAME, 0); 
        for (int i = 0; i < telCount; i++) { 
          String phoneNumber = contactsim.getString(Contact.TEL, i); 
         ContactPerson.addElement(contactName);  
         Telephone.addElement(phoneNumber); 
         Imagedata.addElement("simico.png"); 


        } 
      } 
     } 
    } 
    else 
    { 
     while (simitems.hasMoreElements()) { 
      System.out.println("into show contacts9"); 
      contactsim= (Contact) simitems.nextElement(); 
      String contactName = contactsim.getStringArray(Contact.NAME, 
       Contact.ATTR_NONE)[Contact.NAME_GIVEN]; 

      String phoneNumber=contactsim.getString(Contact.TEL, Contact.ATTR_NONE); 
      if (contactName != null && phoneNumber!=null) 
      { 
         ContactPerson.addElement(contactName);  
         Telephone.addElement(phoneNumber); 
         Imagedata.addElement("simico.png"); 

      } 
      } 
     } 
    } 

} 

       catch(Exception e) 
       { 
        e.printStackTrace(); 
       } 
    try 
    { 
         ContactFetcher contactfetcher=new ContactFetcher(); 
         contactfetcher.setFotmattedName(ContactPerson); 
         contactfetcher.settelName(Telephone); 
         contactfetcher.setImage(Imagedata); 
         PersistableManager pm=PersistableManager.getInstance(); 
         pm.save(contactfetcher); 
    } 
    catch(Exception ex) 
    { 

    } 
} 
相關問題