0

私はsmack libaryを使ってチャットアプリを開発しています。グループチャットで問題が発生しました。私のアプリでは、グループを作成していますが、そのメンバーは自動的に参加しています。チャットを開始していなくても、グループでメッセージを送信したときにすべてのユーザーに通知したいのですが、init メソッドにリスナーを配置しているという点で、私のコードは次のとおりです。メッセージを受信できません。

 //Initialize
public void init(String userId, String pwd, Context context) throws SmackException.NotConnectedException {
    this.mUserName = userId;
    this.mPassWord = pwd;
    this.mContext = context;

    sessionManager = new SessionManager(context);

    if (userId.contains("@")) {
        this.mUserName = userId.split("@")[0];
    }
    XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder();
    configBuilder.setUsernameAndPassword(mUserName, mPassWord);
    configBuilder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
    configBuilder.setServiceName(XMPPCredential.SERVICE);
    configBuilder.setHost(XMPPCredential.HOST);
    configBuilder.setPort(XMPPCredential.PORT);
    configBuilder.setResource("");
//        configBuilder.setDebuggerEnabled(true);


    mConnection = new XMPPTCPConnection(configBuilder.build());
    PingManager pingManager = PingManager.getInstanceFor(mConnection);
    pingManager.setPingInterval(300); // 2.5 min
    pingManager.registerPingFailedListener(this);

    mChatmanager.getInstanceFor(mConnection).addChatListener(this);

    multiUserChatManager = MultiUserChatManager.getInstanceFor(mConnection);
    mConnection.addAsyncStanzaListener(this, null);
    mConnection.addSyncStanzaListener(this,null);

    ReconnectionManager.getInstanceFor(mConnection).enableAutomaticReconnection();
    mConnection.addConnectionListener(this);

    // Connect with XMPP server
    connectConnection(context);
}
4

1 に答える 1

0

各 MultiUserChat は、次のようにリスナーを追加する必要があります。

MultiUserChat muc =  MultiUserChatManager.getInstanceFor(mConnection).getMultiUserChat( mucJid );

muc.addMessageListener(new MessageListener()...);
于 2016-10-19T09:11:20.910 に答える