2010-12-01 5 views
1

Je suis face à un problème fondamental, mais je ne trouve aucun tutoriel pour me aider ...probleme API avec les options sauver la donnée

J'écris une application avec sorte d'options de contact de sauvegarde . Je veux que mes applications pour les téléphones Android fonctionne depuis 1,5 à 2,2

Alors j'écris deux de la mise en œuvre ContactApi, un pour 1,5, 1,6 et un autre pour nouvelle version api.

Voici la liste des problèmes auxquels je suis confronté.

Avec nouvelle API, rien. Tout fonctionne bien, sauvegarder les contacts fonctionne bien.

Mais avec api plus je ne suis pas en mesure de sauvegarder certaines données:

  • Datas Email (capable de lire, mais pas en mesure d'enregistrer)
  • données de messagerie instantanée (capable de lire, mais pas capable de sauver)
  • notes (capable de lire la première note, si beaucoup de notes, j'ai perdu données, mêmes choses pour la sauvegarde)

Voici le code: J'utilise

======= ======= EMAIL

private ArrayList<Email> getEmailAddresses(String id) { 
      ArrayList<Email> emails = new ArrayList<Email>(); 
      Cursor emailCur = this.contentResolver.query(Contacts.ContactMethods.CONTENT_EMAIL_URI, null, Contacts.ContactMethods.PERSON_ID + " = ?", new String[] { id }, null); 
      Email email = null; 
      while (emailCur.moveToNext()) { 
        // This would allow you get several email addresses 
        email = new Email(); 
        email.setData(emailCur.getString(emailCur.getColumnIndex(Contacts.ContactMe thods.DATA))); 
        email.setType(emailCur.getInt(emailCur.getColumnIndex(Contacts.ContactMetho ds.TYPE))); 
        email.setLabel(emailCur.getString(emailCur.getColumnIndex(Contacts.PeopleCo lumns.NAME))); 
        emails.add(email); 
      } 
      emailCur.close(); 
      return emails; 
    } 
private void saveEmailAddresses(ContentUris contactUri, List<Email> emailList, String id) { 
      if (emailList != null && emailList.size() > 0) { 
        ContentValues values = null; 
        ContentValues[] valueArray = new ContentValues[emailList.size()]; 
        int i = 0; 
        for (Email email : emailList) { 
          values = new ContentValues(); 
          values.put(Contacts.ContactMethods.PERSON_ID, id); // 
          values.put(Contacts.ContactMethods.KIND, Contacts.KIND_EMAIL); // 
          values.put(Contacts.ContactMethods.DATA, email.getData()); // 
          values.put(Contacts.ContactMethods.TYPE, email.getType()); // 
          values.put(Contacts.PeopleColumns.NAME, email.getLabel()); // 
          valueArray[i] = values; 
          i++; 
        } 
        contentResolver.bulkInsert(Contacts.ContactMethods.CONTENT_EMAIL_URI, valueArray); 
      } 
    } 

======== IM de la =============

private ArrayList<IM> getIM(Cursor cur, String id) { 
       ArrayList<IM> imList = new ArrayList<IM>(); 
       String where = Contacts.ContactMethods.PERSON_ID + " = ? AND " +  Contacts.ContactMethods.KIND + " = ?"; 
       String[] whereParameters = new String[] { id, 
String.valueOf(Contacts.KIND_IM) }; 
       Cursor imCur = 
this.contentResolver.query(Contacts.ContactMethods.CONTENT_URI, null, 
where, whereParameters, null); 
       IM im = null; 
       while (imCur.moveToNext()) { 
         try { 
           String imName = 
imCur.getString(imCur.getColumnIndex(Contacts.ContactMethodsColumns.DATA)); 
             im = new IM(); 
             im.setName(imName); 
im.setType(imCur.getInt(imCur.getColumnIndex(Contacts.ContactMethodsColumns .TYPE))); 
im.setProtocol(cur.getString(imCur.getColumnIndex(Contacts.ContactMethods.A UX_DATA))); 
             imList.add(im); 
         } catch (Exception e) { 
           Log.e(where, "Error im : ", e); 
         } 
       } 
       imCur.close(); 
       return imList; 
     } 
     private void saveIM(List<IM> imList, String id) { 
       if (imList != null && imList.size() > 0) { 
         ContentValues values = null; 
         ContentValues[] valueArray = new ContentValues[imList.size()]; 
         int i = 0; 
         for (IM im : imList) { 
           values = new ContentValues(); 
           values.put(Contacts.ContactMethods.PERSON_ID, id); // 
           values.put(Contacts.ContactMethods.KIND, Contacts.KIND_IM); // 
           values.put(Contacts.ContactMethodsColumns.DATA, im.getName()); // 
           values.put(Contacts.ContactMethods.AUX_DATA, 
ContactMethods.encodeCustomImProtocol(im.getProtocol())); // 
           values.put(Contacts.ContactMethodsColumns.TYPE, im.getType()); // 
           valueArray[i] = values; 
           i++; 
         } 
         contentResolver.bulkInsert(Contacts.ContactMethods.CONTENT_URI, 
valueArray); 
       } 
     } 

Remarques ========== ======= de

Je ne sais pas comment obtenir toutes les notes?

Quelqu'un peut-il m'aider?

Répondre

0
public static HashMap Parse(String XML, String Tag, ArrayList<String> NodesList) 
{   
    HashMap v = new HashMap();   
    try 
    { 
     DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder db = dbf.newDocumentBuilder(); 
     InputSource is = new InputSource(); 
     is.setCharacterStream(new StringReader(XML)); 
     Document doc = db.parse(is); 
     doc.getDocumentElement().normalize();    
     NodeList nodeLst = doc.getElementsByTagName(Tag);    
     nodeCount = nodeLst.getLength(); 
     for (int s = 0; s < nodeCount; s++) 
     { 
      Node fstNode = nodeLst.item(s); 

      if (fstNode.getNodeType() == Node.ELEMENT_NODE) 
      {     
      Element fstElmnt = (Element) fstNode; 

      for(String nodeName : NodesList) 
      { 
       NodeList fstNmElmntLst = fstElmnt.getElementsByTagName(nodeName); 
       Element fstNmElmnt = (Element) fstNmElmntLst.item(0); 
       NodeList fstNm = fstNmElmnt.getChildNodes(); 
       try { 
        String NodeValue = ((Node) fstNm.item(0)).getNodeValue().toString().trim(); 
        if(NodeValue !=null) 
         v.put(nodeName + s, NodeValue); 
       } 
       catch(Exception e) { 
        v.put(nodeName + s, ""); 
       } 
      } 

      } 
     } 
    } 
    catch (Exception e) 
    { 
     //e.printStackTrace(); 
    } 

    return v; 
}