在我的聊天应用中,我希望在用户登录时(如果有人给他发送了消息),获取离线消息。当用户处于在线状态时,我能够收到通知,但是在用户重新登录后无法获取消息。我已经检查了xmpp log cat,能够在那里阅读到离线消息,但我无法通知用户他/她的离线消息。
以下是我在服务的onStart中使用的监听器:
以下是我在服务的onStart中使用的监听器:
PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
final PacketCollector collector = connection.createPacketCollector(filter);
connection.addPacketListener(new PacketListener() {
@Override
public void processPacket(Packet packet) {
// TODO Auto-generated method stub
//notification(packet.getFrom());
packet = collector.nextResult();
Message message = (Message)packet;
senderName = packet.getFrom();
int alphaPOS = senderName.indexOf("@");
String subSenderName = senderName.substring(0,alphaPOS);
if(UserChatActivity.checkPresence==false){
notificationforChat(subSenderName+": "+message.getBody(),packet.getFrom().toString());
}
}
}, filter);
}
当用户在线时,这个方案很好。但是我希望用户登录后能够收到通知消息。
谢谢。