2012-03-13 1 views
2

Je travaille sur l'application client de discussion XMPP. J'ai besoin de savoir comment afficher l'image utilisateur dans l'écran de contact. Je suis capable d'afficher le nom du contact en utilisant (getUser()), Status en utilisant (getStatus()) dans xmpp android. Comment puis-je obtenir l'image de l'utilisateur avec le nom et l'état du contact. Y at-il une fonction comme d'autres dans xmpp qui est utilisée pour afficher l'image de contact. Aidez-moi s'il vous plaît à guider comment obtenir l'image de contact avec le nom de contact et le statut.Contact Image de XMPP dans android

Merci d'avance.

Répondre

8

Voici comment obtenir toutes les informations ami

Roster roster = XMPPConnection.getRoster(); 
      Collection<RosterEntry> entries= roster.getEntries(); 
      ProviderManager.getInstance().addIQProvider("vCard", "vcard-temp", 
        new VCardProvider()); 
      VCard card = null; 
      for (RosterEntry entry : entries) { 
       card = new VCard(); 
       Presence presencek= roster.getPresence(entry.getUser()); 
       try { 
        card.load(Main.conn, entry.getUser()); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 

       String jid = entry.getUser(); 
       String name = card.getField("FN"); 
       String status = presencek.getType().name(); 
       Log.d("Prescence", "" + presencek.getType().name());// //num one log 

       byte[] imgs = card.getAvatar(); 
       if (imgs != null) { 
        int len = imgs.length; 
        Bitmap img = BitmapFactory.decodeByteArray(imgs, 0, len); 
       } 

Hope cette personne aide :)

+1

, id, statut. mais je reçois l'exception V-Card non disponible pour le contact, je veux obtenir le plein statut i.e Occupé, inactif, disponible, non disponible. Maintenant, je suis disponible et indisponible. Je veux des choses restantes aussi comment puis-je les obtenir. –

+0

Je reçois pas de VCard pour [email protected] comment puis-je obtenir l'image du profil de l'utilisateur .. –

0

Je viens de recevoir ça a marché quand je l'ai changé mon code ici

ProviderManager.getInstance().addIQProvider("vCard", "vcard-temp", 
        new VCardProvider()); 

à

J'utilise ce code capable d'obtenir le nom
ProviderManager.getInstance().addIQProvider("vCard", "vcard-temp:x:update", 
        new VCardProvider());