我正在使用jivesoftware Smack SDk即時聊天功能。 爲了創建連接我使用下面的代碼,Android with Smack - 如何獲取在線用戶列表?
XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration.builder();
config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
config.setServiceName("world-pc");
config.setHost(serverAddress);
config.setPort(5222);
config.setDebuggerEnabled(true);
XMPPTCPConnection.setUseStreamManagementResumptiodDefault(true);
XMPPTCPConnection.setUseStreamManagementDefault(true);
connection = new XMPPTCPConnection(config.build());
XMPPConnectionListener connectionListener = new XMPPConnectionListener();
connection.addConnectionListener(connectionListener);
connection.connect();
connection.login("username","password");
及其工作令人驚訝的罰款。 現在的事情是,我想獲取特定用戶的在線狀態或獲取所有在線用戶的列表。 我已經嘗試了很多來自堆棧溢出的解決方案,但沒有爲我工作。 我的一個解決方案,我試圖,
Presence presence = new Presence(Presence.Type.available);
connection.sendPacket(presence);
Roster roster = xmppConnection.getRoster();
Collection<RosterEntry> entries = roster.getEntries();
Presence presence;
for(RosterEntry entry : entries) {
presence = roster.getPresence(entry.getUser());
System.out.println(entry.getUser());
System.out.println(presence.getType().name());
System.out.println(presence.getStatus());
}
這將返回我一個名單,但狀態爲空的所有用戶。 請有人幫我準確的解決方案。
謝謝
您的客戶是否發送Presence? – MrPk
是的..請檢查編輯的問題 –