3

Java で multiuserchat を作成しようとしました。私はスマックライブラリを使用しています。multiuserchat を作成するコードは次のとおりです。

MultiUserChat muc = new MultiUserChat(connection, "roomname@somehost");
muc.create("mynickname");

Form form = muc.getConfigurationForm();
Form submitForm = form.createAnswerForm();
submitForm.setAnswer("muc#roomconfig_roomname", "A nice formatted Room Name");
submitForm.setAnswer("muc#roomconfig_roomdesc", "The description. It should be longer.");
muc.sendConfigurationForm(submitForm);
muc.addMessageListener(mucMessageListener); // mucMessageListener is a PacketListener

次に、mucMessageListener を使用して、上記で作成したこの部屋から送信されたメッセージをキャプチャしようとしました。

private PacketListener mucMessageListener = new PacketListener() {
    public void processPacket(Packet packet) {
        if (packet instanceof Message) {
            Message message = (Message) packet;
            // this is where I got the problem
        }
    }
}

他の部分 (この multiuserchat の所有者ではないユーザー) が受信したメッセージとして、上記の行で設定された値を取得できますか?

submitForm.setAnswer("muc#roomconfig_roomname", "A nice formatted Room Name");

おわかりのように、部屋の JID だけを取得することは、ビューにとってあまり良いことではありません。値が「適切な形式の部屋名」である文字列を持つことができると思います。

どうすればそれを得ることができますか?

4

3 に答える 3

0

config の部屋のタイトル名などの var の値を読み取りたい場合

Form form = chat.getConfigurationForm();
String value =  form.getField("muc#roomconfig_roomname").getValues().next();

次に、価値を持ってやりたいことをします..

于 2016-02-19T21:49:40.917 に答える