开发者

Image/binary data not being parsed from XMPP vCard

开发者 https://www.devze.com 2023-04-07 22:19 出处:网络
Please help, I am stuck with this issue. Basically I am getting a AVATAR BASED VCARD i can see that in debug mode, but ASMACK is not parsing image properly. Its just dropping the tag which contains t

Please help, I am stuck with this issue.

Basically I am getting a AVATAR BASED VCARD i can see that in debug mode, but ASMACK is not parsing image properly. Its just dropping the tag which contains the image value.

Logcat shows the XML being received:

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): 5fLBXiuE2svoGoalmWB0WgEtOvE2ghIxVoymQSFQgEUi0VgBF4VOB6PYDqdgslkAmazGaDPicViAYLB开发者_C百科IKBotVognU6DT5us/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>

Here, outputting the packet in my message listener, you can see that the photo tag is dropped. I don't know why asmack doesn't show this.

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

Here is the logcat output:

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>


In org/jivesoftware/smackx/provider/VCardProvider.java, circa line 117, there is this line:

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

which is incorrect. BINVAL is a child of PHOTO, not of vCard. Therefore, the image is getting set to NULL.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号