2

J'utilise smack 4.2.0 dernière version, ici IncomingChatMessageListener fonctionne bien mais OutgoingChatMessageListener ne reçoit pas d'appel quand j'envoie le message. Quelqu'un peut-il me suggérer quel est le problème? Mon code est ci-dessousSmack 4.2.0 OutgoingChatMessageListener ne reçoit aucun appel

ChatManager chatManager = ChatManager.getInstanceFor(mXMPPConn); 
EntityBareJid jid = JidCreate.entityBareFrom(mStrJabberID); 
Chat chat = chatManager.chatWith(jid); 
chatManager.addOutgoingListener(new OutgoingChatMessageListener() { 
    @Override 
    public void newOutgoingMessage(EntityBareJid to, Message message, Chat chat) 
    { 
     System.out.format("OUTGOING: %s.\n", message); 
    } 
}); 

chat.send(strMsg); 
+0

étrange, essayez d'activer les journaux –

+0

J'ai aussi le même problème, laissez-moi savoir si vous avez compris le problème. – rigal

+0

même question .. s'il vous plaît aider si vous avez trouvé la solution ... :( – iMDroid

Répondre

0

Je débogage dans le code source de smack. Vous pouvez essayer ce qui suit:

  1. ensemble FromMode.USER à la connexion

    connection.setFromMode(XMPPConnection.FromMode.USER); 
    
  2. type de message set avant d'envoyer un message

    message.setType(org.jivesoftware.smack.packet.Message.Type.chat); 
    

Expliquer:

  1. AbstractJidTypeFilter vérifie le jid du message est plein ou nu. La connexion va définir la strophe jid, la valeur par défaut est null. (AbstractXMPPConnection.java#sendStanza, ligne 666)

  2. MessageTypeFilter va vérifier le type de message est conversation ou normal.

0

J'ai retracé le code et a trouvé il y a un bogue dans AbstractJidTypeFilter.class dans cette version. Le passage de votre version de Smack 4.2.0 à Smack 4.2.2 devrait fonctionner.
Espérons que cela résout votre problème.