2

ルームに参加している間、常にグループ チャットの履歴を受信して​​います。具体的には、グループに参加するたびに、そのグループに送信した最後の 1 つのメッセージ (1 つのメッセージのみ) を受信して​​います。これを無効にするために、次の方法を試しました。

  • ドキュメンテーションが示唆するように、ルームに参加する際に初期プレゼンスの履歴パラメータで値「maxchars ='0」を渡しました。
  • Web 管理ページで [グループ チャット] セクションに移動し、[グループ チャットの設定] -> [グループ チャット サービスのプロパティ] -> [履歴の設定] -> [履歴を表示しない] に移動します。

考えられるすべての方法を試しましたが、ルームに参加しているときにまだ履歴メッセージが表示されます。参加時に私が受け取っているメッセージには、遅延延長が含まれていることに注意してください。それが重要な場合。

4

1 に答える 1

8

これを試して..

    MultiUserChat muc = new MultiUserChat(mConnection, room_name);
    Log.d(TAG, "JOINING => " + room_name);

    DiscussionHistory history = new DiscussionHistory();
    history.setMaxStanzas(0);

     muc.join(mNickName, null, history,SmackConfiguration.getDefaultPacketReplyTimeout());

そして、「グループは非同期です」というメッセージが表示された場合は、グループに参加したことを通知するのと同じです。これのif条件をグループチャットリスナーに入れるだけです。

于 2015-01-16T08:00:28.713 に答える