我正在使用 smack 库开发聊天应用程序。我在群聊中遇到问题。在我的应用程序中,我正在创建一个组,并且成员是自动加入的。我想在我在组中发送消息时通知所有用户,即使他们没有发起聊天。我的代码如下,我有将侦听器放在 init 方法中但无法接收消息。
multiUserChatManager = MultiUserChatManager.getInstanceFor(mConnection);
mMultiUserChat = multiUserChatManager.getMultiUserChat(to);
mConnection.addAsyncStanzaListener(this, null);
DiscussionHistory history = new DiscussionHistory();
history.setMaxStanzas(0);
mMultiUserChat.addMessageListener(this);
mConnection.addSyncStanzaListener(this, null);
try {
mMultiUserChat.join(from, "", history, SmackConfiguration.getDefaultPacketReplyTimeout());
} catch (SmackException.NoResponseException e) {
e.printStackTrace();
} catch (XMPPException.XMPPErrorException e) {
e.printStackTrace();
} catch (SmackException.NotConnectedException e) {
e.printStackTrace();
}
这是组的消息侦听器
@Override
public void processMessage(Message message) {
Logg.e(TAG,"Message received group..");
}
我不知道为什么当有人在群组中发送消息时此方法不会调用,即使我加入了群组,如果我创建 1 个群组并加入 2 个用户,当 1 个用户在群组中发送消息时,用户 2 无法接收消息,但是当用户 2 在该组内发送消息时,他们都能够接收消息。
请帮助我,我无法找到解决方案。请不要提供已弃用的建议。
提前致谢。!!