2011-09-24 71 views
3

請幫忙,我被這個問題困住了。從XMPP vCard中未解析圖像/二進制數據

基本上我得到一個基於AVATAR的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>[email protected]</ 
DEBUG/SMACK(1336): USERID> 

這裏,輸出在我的消息監聽器包,你可以看到照片標記將被丟棄。我不知道爲什麼asmack沒有顯示這一點。

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

這裏是logcat的輸出:

INFO/System.out(1336): <NICKNAME>TC</NICKNAME> 
INFO/System.out(1336): <TITLE></TITLE> 
INFO/System.out(1336): <EMAIL><HOME/><INTERNET/><PREF/><USERID>[email protected]</USERID> 
+0

最近修復了這個問題:http://issues.igniterealtime.org/browse/SMACK-413 – Flow

回答

1

org/jivesoftware/smackx/provider/VCardProvider.java,大約線117,有這一行:

vCard.setEncodedImage(getTagContents( 「BINVAL」));

這是不正確的。 BINVALPHOTO的孩子,而不是vCard。因此,圖像被設置爲NULL。

+0

Joe ..但是我使用了一個compliled的libray jar文件,這個jar文件叫做beem project..is還有其他的方法。 plz guide .. – Programmer

+0

我也試過發送IQ Pakcets,同樣的事情也發生在那裏,我已經發布了一個問題。基本上我正在發送IQ數據包並在調試模式下獲取帶有圖像的vcard,但不知何故,當我編寫packet.toXML()或packet.toString時,IQ Pakcet列表器是否會下降到Avatar,是不是可以在控制檯上打印二進制值或登錄。 Plz幫助我... – Programmer

+0

這是圖書館裏的一個錯誤。它需要被修復。你可以自己編譯代碼,使用不同的庫,或者自己寫一個,我不推薦。 –