1
しかし同時に、私は以前のすべてのメッセージを受け取ります。このことから私を助けてください。ここ は私のコードです:メッセージをグループに送信したあとに、グループにチャットした後に複数のメッセージを受信しました。
send.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
to = groupname + "@conference.localhost".toString();
String text = (textMessage.getText().toString());
textMessage.setText("");
muc = new MultiUserChat(connection, to);
try {
muc.join(USERNAME);
} catch (XMPPException e) {
e.printStackTrace();
}
Message msg = new Message(to, Message.Type.groupchat);
msg.setBody(text);
if (connection != null) {
connection.sendPacket(msg);
Msg data = new Msg();
data.setMessage(text);
data.setName(userFrom);
data.setDate(DateAndTime.getCurrentDate());
data.setTime(DateAndTime.getCurrentTime());
data.setSender(true);
MessageListAdapter.messagesItems.add(data);
notifyMyAdapter();
}
}
});
、ここでは私の受信コードです:MultiUserChat
で
public void setConnection(XMPPConnection connection) {
this.connection = connection;
if(connection != null) {
PacketFilter filter = new MessageTypeFilter(Message.Type.groupchat);
connection.addPacketListener(new PacketListener() {
@Override
public void processPacket(Packet packet) {
Message message = (Message) packet;
if (message.getBody() != null) {
String fromName = StringUtils.parseBareAddress(message.getFrom());
Log.i("XMPPChatDemoActivity ", " Text Recieved " + message.getBody() + " from " + fromName);
Msg data = new Msg();
String subject = message.getSubject();
if (subject == null) {
data.setMessage(message.getBody());
data.setName(NAME);
data.setDate(DateAndTime.getCurrentDate());
data.setTime(DateAndTime.getCurrentTime());
data.setSender(false);
MessageListAdapter.messagesItems.add(data);
mHandler.post(new Runnable() {
@Override
public void run() {
notifyMyAdapter();
}
});
} else if (subject.equals("")){
data.setMessage(message.getBody());
data.setName(NAME);
data.setDate(DateAndTime.getCurrentDate());
data.setTime(DateAndTime.getCurrentTime());
data.setSender(false);
MessageListAdapter.messagesItems.add(data);
// Add the incoming message to the list view
mHandler.post(new Runnable() {
public void run() {
notifyMyAdapter();
}
});
}
}
}
},filter);
}
}
...それが正常に動作します。返信のためのThanx。 :) –