2012-03-26 8 views
3

Ich erhalte vCard mit asmack Bibliothek. Ich bin die vCard abrufen kann, aber die Antwort ist nicht genau das, was ich benötige, es gibt nur AntwortKeine genaue Antwort von vCard mit asmack

<iq id="3842p-8" to="[email protected]" type="get"> 
           <vCard xmlns='vcard-temp'><FN>Lalit Poptani</FN> 

Die erwartete Antwort wird komplett Detail/Informationen über den Benutzer als here

gezeigt ich es versucht hatte, wie unten,

VCard vCard = new VCard(); 
try { 
     ProviderManager.getInstance().addIQProvider("vCard", "vcard-temp", 
                  new VCardProvider()); 
     vCard.load(conn, user); 
     Log.d("Vcard XML", vCard.toXML()); 
    } catch (XMPPException e) { 
     e.printStackTrace(); 
    } 

hatte ich auch this answer Konfiguration alles, das erforderlich versucht, mit. Also, gibt es etwas, das weiter benötigt wird, um das komplette XML der vCard des Benutzers zu erhalten?

+0

Hmn. Ich sehe, dass Sie die Abfrage genau so ablaufen lassen [das scheint für einen anderen SO-Benutzer funktioniert zu haben] (http://stackoverflow.com/questions/8355684/asmack-not-loading-vcard). Die einzige Komplikation ist, dass Ihre Ausgabe nach dem ersten Eintrag abgeschnitten scheint. Hilft Ihnen [this thread] (http://code.google.com/p/asmack/issues/detail?id=14) überhaupt? – MrGomez

+0

Danke für den Kommentar, aber das habe ich auch schon überprüft aber es funktioniert nicht. –

+0

Sehr seltsam. Ich frage mich jedoch: Ist 'Log.d' wirklich in der Lage, das gesamte XML zu drucken? Was muss ein Debugger zu diesem Problem sagen? – MrGomez

Antwort

1

Probieren Sie es regelmäßig Smack in einem einfach Java App (kein Android), wo Sie auf den Debug-Fenster drehen können (-Dsmack.debugEnabled = true), die Ihnen die rohen Strophen gibt vom Server empfangen werden. Dies bestätigt zumindest, dass die Zeilen richtig sind. Wenn dies nicht der Fall ist, liegt ein Serverproblem vor. Ich denke, das ist unwahrscheinlich, da fehlerhafte Zeilenumbrüche normalerweise dazu führen, dass die Verbindung beendet wird, da der Client den Stream nicht analysieren kann.

Wenn sie korrekt sind, dann gibt es wahrscheinlich ein Problem im Anbieter selbst. Gemäß der Dokumentation Smacks 'VCard class is incomplete ist es also möglich, dass die zurückgegebenen Informationen nicht in der Liste der geparsten Felder enthalten sind.

Die Kenntnis der zurückgegebenen Zeilengruppe würde es einfacher machen, dies zu überprüfen.

asmack ist von Smack abgeleitet, so sollte es sich genau in diesem speziellen Fall verhalten (die meisten Fälle tatsächlich).

+0

Aaahhh !!! Danke, dass Sie nicht wissen, was 'mConfiguration.setDebuggerEnabled (true);' tut, hat es angewendet, hat es funktioniert;) –

+0

Wie haben Sie es dann funktioniert? – Tijme