未从XMPP vCard解析图像/二进制数据

未从XMPP vCard解析图像/二进制数据,xmpp,smack,vcf-vcard,asmack,Xmpp,Smack,Vcf Vcard,Asmack,请帮忙,我被这个问题困住了 基本上,我得到了一个基于化身的VCARD,我可以在调试模式下看到它,但ASMACK并没有正确解析图像。它只是删除包含图像值的标记 Logcat显示正在接收的XML: DEBUG/SMACK(1336): <NICKNAME>TC</NICKNAME> DEBUG/SMACK(1336): <PHOTO><TYPE>im DEBUG/SMACK(1336): age/jpeg</TYPE><BINVAL&

请帮忙,我被这个问题困住了

基本上,我得到了一个基于化身的VCARD,我可以在调试模式下看到它,但ASMACK并没有正确解析图像。它只是删除包含图像值的标记

Logcat显示正在接收的XML:

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>
以下是logcat输出:

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>
INFO/System.out(1336):TC
信息/系统输出(1336):
信息/系统输出(1336):test@test.com

org/jivesoftware/smackx/provider/VCardProvider.java
的第117行,有一行:

vCard.setEncodedImage(getTagContents(“BINVAL”)


这是不正确的
BINVAL
PHOTO
的子对象,而不是
vCard
的子对象。因此,映像被设置为NULL。

Joe..但是我使用的是一个从beem项目调用的复杂的Library jar文件..还有其他方法吗。plz指南..我也尝试过发送IQ Pakcets,同样的事情也发生在那里,我在上面贴了一个问题。基本上,我在调试模式下发送IQ数据包并获取带有图像的vcard,但不知何故,当我编写packet.toXML()或packet.toString时,IQ Pakcet listner会下降到Avatar,这是因为无法在控制台或日志上打印二进制值。请帮帮我…这是图书馆里的一个错误。它需要修复。你可以自己编译代码,使用另一个库,或者自己从头开始编写一个,我不推荐这样做。ASmack似乎是Android目前唯一的选择。提交一个bug。可能他们会为您解决此问题。VDroid:有关XMPP Android库解决方案,请参阅。此问题最近已得到解决:
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>