私はjacksoftware 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());
}
これは私のリストを返しますが、ステータスは、すべてのユーザーの場合はnullです。 正確な解決策を教えてください。 「!Hello World」のユーザー(などから、カスタムNULL可能status
または右または「仕事で「今日、私は幸せです」:
は、それがTYPE
(Presence.Type.available
またはPresence.Type.unavailable
など)によって作られて、あなたに
クライアントはプレゼンスを送信しますか? – MrPk
はい。編集した質問を確認してください –