在我的聊天应用程序中,我想在用户登录时获取离线消息(如果有人向他发送了消息)。当用户处于在线状态并且在用户重新登录后无法获取消息时,我会收到通知。我也检查了 xmpp 日志猫。我可以在那里阅读离线消息,但我无法通知用户他/她的离线消息。
这是我在服务的 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);
}
当用户在线时,这工作正常。但我希望一旦用户登录,他应该被通知他的消息
谢谢