3 Stimmen

Bild-/Binärdaten werden von XMPP vCard nicht geparst

Bitte helfen Sie mir, ich stecke mit diesem Problem fest.

Grundsätzlich bekomme ich eine AVATAR BASED VCARD, die ich im Debug-Modus sehen kann, aber ASMACK analysiert das Bild nicht richtig. Seine nur fallen das Tag, das das Bild Wert enthält.

Logcat zeigt das empfangene XML an:

DEBUG/SMACK(1336): <NICKNAME>TC</NICKNAME>
DEBUG/SMACK(1336): <PHOTO><TYPE>im
DEBUG/SMACK(1336): age/jpeg</TYPE><BINVAL>iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACHklEQVR42u2Zv64BQRSH9xmUCrUHEAUShUqlshWJxhOIECJ0oqIQL6BTK
DEBUG/SMACK(1336): 1AKrcYDkEgkKq3/9ya/5DQnTmaxbnb2zkm+Yu1a51szs2dmrJ8vxf1+BzxutxtwK6x/LyAlSvF4PACP6/UKjMBfNR2VqBF4N6QmQgnzxN0WMQIqkXevMwLvdlqe4G63A
DEBUG/SMACK(1336): 5fLBXiuE2svoGoalmWB0WgEtOvE2ghIxVoymQSFQgEUi0VgBF4VOB6PYDqdgslkAmazGaDPicViAYLBIKBotVognU6DT5us/wToBHU2Oq7X68C2bdDtdkGn03lKu90GJ
DEBUG/SMACK(1336): Mjv3+/3QTweB+fzGagGBd5E9RfgiUpfqNVqYLVaAacTlNPpBKQYDocgHA4D/gBVL1D9BaQTXKharYL5fA5IjP+ldKyaMvJye7PZgEAgAKR8uJj+AqpijIKa0HK5BE6HO
DEBUG/SMACK(1336): UmQx3g8BpFIBPDrxFJFewFVUUY3ajQagDoxF3e6TMK/V6lUQCwWA7zslvLxj4DTKV65XAaJRAJQcZbL5UA+nwd0nM1mwWAwADwhuq5UKgFJkI6lpqe/wKsLVNvtFhwOB
DEBUG/SMACK(1336): 7Df759CL7BQKAQoMpkMaDabgIT4g5R+n1/nXwG3IhqNglQqBXq9HvD8/oB2AryT0XBIk/r1eg08u6yirYCqFPnWgpYRkMpd1YvRs5t82grwxKmo+/bGhhF4VcyzGxy+E
DEBUG/SMACK(1336): aDhUhpWnU5djYBbGxtuD5e+FfgFV75bC/jUS/sAAAAASUVORK5CYII=</BINVAL></PHOTO>
DEBUG/SMACK(1336): <EMAIL><HOME/><INTERNET/><PREF/><USERID>test@test.com</
DEBUG/SMACK(1336): USERID>

Hier, bei der Ausgabe des Pakets in meinem Message Listener, kann man sehen, dass das Foto-Tag weggelassen wird. Ich weiß nicht, warum asmack dies nicht anzeigt.

class MyPacketListener implements PacketListener{
    public void processPacket(Packet packet){
        System.out.println("IQ Received XML : " + packet);  
        Log.i("Packet IQ", packet.toString());              
    }          
}

Hier ist die logcat-Ausgabe:

INFO/System.out(1336): <NICKNAME>TC</NICKNAME>
INFO/System.out(1336): <TITLE></TITLE>
INFO/System.out(1336): <EMAIL><HOME/><INTERNET/><PREF/><USERID>test@test.com</USERID>

0 Stimmen

Dieses Problem wurde kürzlich behoben: issues.igniterealtime.org/browse/SMACK-413

1voto

Joe Hildebrand Punkte 9915

org/jivesoftware/smackx/provider/VCardProvider.java Etwa in Zeile 117 findet sich diese Zeile:

vCard.setEncodedImage(getTagContents("BINVAL"));

was falsch ist. BINVAL ist ein Kind von PHOTO , nicht von vCard . Daher wird das Bild auf NULL gesetzt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X