2010-09-04 70 views

回答

2

下面是一个例子使用Smack

SASLAuthentication.supportSASLMechanism("PLAIN"); 
ConnectionConfiguration config = new ConnectionConfiguration(
     "talk.google.com", 5222, "gmail.com"); 
XMPPConnection conn = new XMPPConnection(config); 
conn.connect(); 
conn.login("[email protected]", "password"); 
Roster roster = conn.getRoster(); 
Collection<RosterEntry> set = roster.getEntries(); 
for (RosterEntry re: set) { 
    System.out.println(">> " + re.getUser());    
    Presence pres = roster.getPresence(re.getUser()); 
    //This is the status. 
    System.out.println("\t> " + pres.getMode()); 
} 

使用Prescence.getStatus()得到的消息字符串

+0

我用这个代码,但它为所有的电子邮件地址返回unavailabke ... 其实我有3个在线ID – Kandha 2010-09-04 06:31:40

+0

我用这条线 pres.isAvaliabl E(); 获取状态.. 它现在正在工作... – Kandha 2010-09-04 06:35:53

+0

应该是getMode()不是getType()。我编辑了我的答案。 – 2010-09-05 04:47:09