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人のユーザーがグループでメッセージを送信すると、user2はメッセージを受信できません.しかし、ユーザー 2 がこのグループ内でメッセージを送信すると、両方ともメッセージを受信できます。
助けてください、解決策が見つかりません。すでに廃止されている提案をしないでください。
前もって感謝します。!!