#xmpp笔记# Android获取openfire离线消息

Android实现openfire获取离线消息的基本思路:

在用户连接登录openfire之前,先连接一次openfire,并且要配置ConnectionConfiguration,一定要设置SendPresence为false,即将在线状态设置为离线,然后才能接收到离线消息,处理完离线消息之后,记得要通知openfire服务器端,删除接收到的离线消息,并且设置再将状态设置为在线

private void getOffline(){
		ConnectionConfiguration connConfig = new ConnectionConfiguration(
				HOST, PORT);
		// 允许自动连接
		connConfig.setReconnectionAllowed(true);
		connConfig.setSendPresence(false);//不要告诉服务器自己的状态
		Connection connection = new XMPPConnection(connConfig);

		try {
			connection.connect();// 开启连接
			connection.login(username,password,XMPP_RESOURCE_NAME);
		} catch (XMPPException e) {
			throw new IllegalStateException(e);
		}
		OfflineMessageManager offlineManager = new OfflineMessageManager(
				connection);
		try {
			Iterator<Message> it = offlineManager
					.getMessages();

			Map<String, ArrayList<Message>> offlineMsgs = new HashMap<String, ArrayList<Message>>();

			while (it.hasNext()) {
				Message message = it.next();
				//对离线消息进行的处理
				NotifyChatMessage chatMessage = new NotifyChatMessage(XmppManager.this);
				chatMessage.notifyMessage(message.getBody());
			}

			offlineManager.deleteMessages();//删除所有离线消息
		} catch (Exception e) {
			e.printStackTrace();
		}

		Presence presence = new Presence(Presence.Type.available);
		connection.sendPacket(presence);//上线了
		connection.disconnect();//关闭连接

	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值