即时通讯软件的离线消息获取 本帖最后由 jayqean 于 2011-05-31 12:19:54 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 offlineManager.getMessageCount() 打印出来是0想用gmail的邮箱测试,奈何公司的网络很差有哪位好心人帮我测试下就好,用两个gmail邮箱 在对方离线的时候发送条消息 在用下面的代码登录离线的那个帐号,测试有没有收到import java.util.Iterator;import org.jivesoftware.smack.ConnectionConfiguration;import org.jivesoftware.smack.XMPPConnection;import org.jivesoftware.smack.XMPPException;import org.jivesoftware.smack.packet.Presence;import org.jivesoftware.smackx.OfflineMessageManager;public class Test { public static XMPPConnection getConn() { ConnectionConfiguration conf = new ConnectionConfiguration("gmail.com", 5222); conf.setSASLAuthenticationEnabled(false);// gtalk不支持SASL验证,设置为false conf.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled); conf.setCompressionEnabled(false); XMPPConnection conn = new XMPPConnection(conf); return conn; } public static void main(String[] args) { XMPPConnection conn = getConn(); try { conn.connect(); conn.login("username", "password"); Presence presence = new Presence(Presence.Type.available); conn.sendPacket(presence); OfflineMessageManager offlineManager = new OfflineMessageManager(conn); System.out.println(offlineManager.getMessageCount()); Iterator<org.jivesoftware.smack.packet.Message> it = offlineManager.getMessages(); while(it.hasNext()){ org.jivesoftware.smack.packet.Message message = it.next(); System.out.println("收到离线消息, Received from 【" + message.getFrom() + "】 message: " + message.getBody()); } } catch (XMPPException e) { // TODO Auto-generated catch block e.printStackTrace(); } }} 一回家就解决了,够折腾的,服务器对于离线消息是主动推送的,上线能监听到,我写的另一个测试列子是因为没有一段时间的停留,其实是收到了,来不急打印,Thread.sleep(100000);关于一楼的回复,确实无法用OfflineMessageManager这个类收到. [Android] TextView:同时设置宽与最大宽方法有问题 android屏幕录像原理 ListView高级控件讨论 eclipse上创建android项目时,出现的问题 请问android实现把宠物之类的放到主界面 看着OpenCore 犯晕了 控制EditText的焦点放在指定位置 android读书应用翻页时自动回到前一页 获取文件大小问题,求指点 大神进来看看,诺基亚X6的角标设置代码 小妹请教如何用代码实现卸载! 跪求一个 android问题,有关checkbox的
想用gmail的邮箱测试,奈何公司的网络很差
有哪位好心人帮我测试下就好,用两个gmail邮箱 在对方离线的时候发送条消息 在用下面的代码登录离线的那个帐号,测试有没有收到import java.util.Iterator;import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.packet.Presence;
import org.jivesoftware.smackx.OfflineMessageManager;public class Test {
public static XMPPConnection getConn() {
ConnectionConfiguration conf = new ConnectionConfiguration("gmail.com",
5222);
conf.setSASLAuthenticationEnabled(false);// gtalk不支持SASL验证,设置为false
conf.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
conf.setCompressionEnabled(false);
XMPPConnection conn = new XMPPConnection(conf);
return conn;
}
public static void main(String[] args) {
XMPPConnection conn = getConn();
try {
conn.connect();
conn.login("username", "password");
Presence presence = new Presence(Presence.Type.available);
conn.sendPacket(presence);
OfflineMessageManager offlineManager = new OfflineMessageManager(conn);
System.out.println(offlineManager.getMessageCount());
Iterator<org.jivesoftware.smack.packet.Message> it = offlineManager.getMessages();
while(it.hasNext()){
org.jivesoftware.smack.packet.Message message = it.next();
System.out.println("收到离线消息, Received from 【" + message.getFrom() + "】 message: " + message.getBody());
}
} catch (XMPPException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
关于一楼的回复,确实无法用OfflineMessageManager这个类收到.