Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

smack 4.1 processMessage method does not called

i'm using smack 4.1 library where i'm unable to revived message event.

here is my code-

 Chat chat = connection.getChatManager().createChat("user2@openfireserver", new MessageListener() {
            @Override
            public void processMessage(Chat arg0, Message arg1) {

                System.out.println(arg1.getBody());

            }
        });
        chat.sendMessage("test message");

debug report-

<message id="WrfOv-14" to="user1@openfireserver/Smack" from="user2@openfireserver/Smack" type="chat"><body>my test application</body><thread>56b1a75c-69a5-4a12-b12a-d24e072a2ce7</thread></message>

receive chat show in debug but not getting event in processMessage method. (may my question is duplicate but i'm not find relevant answer)

like image 322
Nikesh Pathak Avatar asked Jul 28 '26 23:07

Nikesh Pathak


1 Answers

I have used Smack 4.1 library in one of my Android projects. The following code snippet worked for me.

ChatManager.getInstanceFor(connection).addChatListener(new ChatManagerListener() {
            @Override
            public void chatCreated(Chat chat, boolean createdLocally) {
                chat.addMessageListener(new ChatMessageListener() {
                    @Override
                    public void processMessage(Chat chat, Message message) {
                        if (message.getType() == Message.Type.chat || message.getType() == Message.Type.normal) {
                            if(message.getBody()!=null) {
                              Toast.makeText(this,message.getFrom() + " : " + message.getBody(),Toast.LENGTH_LONG).show();
                            }
                        }
                    }
                });
            }
        });
like image 153
Dexter Barretto Avatar answered Jul 31 '26 14:07

Dexter Barretto



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!