Openfire XMPP asmack开发 android客户端上传用户头像

来源:互联网 发布:淘宝代付超限 编辑:程序博客网 时间:2024/06/07 05:29

Openfire XMPP asmack开发 android客户端上传用户头像

直接上代码:


[java] view plaincopy
  1. /** 
  2.      * 上传头像 
  3.      */  
  4.     private void setUserImage(final XMPPConnection connection,  
  5.             final byte[] image) throws XMPPException {  
  6.         final VCard card = new VCard();  
  7.         card.load(connection);  
  8.   
  9.         new Thread() {  
  10.             @Override  
  11.             public void run() {  
  12.                 try {  
  13.                     PacketFilter filter = new AndFilter(new PacketIDFilter(  
  14.                             card.getPacketID()), new PacketTypeFilter(IQ.class));  
  15.                     PacketCollector collector = connection  
  16.                             .createPacketCollector(filter);  
  17.                     String encodeImage = StringUtils.encodeBase64(image);  
  18.                     card.setAvatar(image, encodeImage);  
  19.                     card.setEncodedImage(encodeImage);  
  20.                     card.setField("PHOTO""<TYPE>image/jpg</TYPE><BINVAL>"  
  21.                             + encodeImage + "</BINVAL>"true);  
  22.                     Log.i("other""上传头像的方法!");  
  23.                     card.save(connection);  
  24.                     IQ iq = (IQ) collector.nextResult(SmackConfiguration  
  25.                             .getPacketReplyTimeout());  
  26.                     if (iq != null && iq.getType() == IQ.Type.RESULT) {  
  27.                         Message msg = handler.obtainMessage();  
  28.                         msg.what = 2;  
  29.                         handler.sendMessage(msg);  
  30.                     }  
  31.                 } catch (XMPPException e) {  
  32.                     // TODO Auto-generated catch block  
  33.                     e.printStackTrace();  
  34.                 }  
  35.             }  
  36.         }.start();  
  37.     }  

0 0