QuickBlox API を使用してチャット アプリケーションを作成しています。サンプル アプリから、アカウント内のすべてのリスト ユーザーを取得できますが、オンラインで利用可能なユーザーのみを表示したいと考えています。オンラインで利用可能なユーザーを取得するにはどうすればよいですか?
質問する
3779 次
4 に答える
2
XMPP 接続の Rooster を使用して、SMACK API を介して QuickBlox チャット モジュールのオンライン ユーザーを取得できます。この回答を確認してください。
Smack 経由でオンライン ユーザーをフレンド リストに追加できますか?
チャットモジュールまたは他のモジュールのオンラインユーザーが必要ですか?
乾杯!
于 2013-03-06T12:51:12.917 に答える
1
smack API を使用して、オンラインで利用可能なユーザーに対してこれを試してください。名簿名簿 = 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 presence = roster.getPresence("tom@jabber.org");
if (presence.getType() == Presence.Type.AVAILABLE) {
// Tom is online...
}
Presence.getMode() メソッドを使用してユーザーのモードを取得します。モードは列挙型で、その値は、chat、available、away、xa、dnd のいずれかです。
于 2013-03-06T13:13:02.813 に答える
0
XMPPConnection.addConnectionCreationListener(新しい ConnectionCreationListener() {
@Override
public void connectionCreated(Connection arg0) {
Log.i(TAG, "receive xmpp connection : " + arg0);
connection = arg0;
roster = arg0.getRoster();
Collection<RosterEntry> entries = roster.getEntries();
Presence presence;
Log.e(TAG, "user count" + entries.size());
for (RosterEntry entry : entries) {
presence = roster.getPresence(entry.getUser());
Log.i(TAG, "" + entry.getUser());
Log.i(TAG, "" + presence.getType().name());
Log.i(TAG, "" + presence.getStatus());
}
}
});
于 2014-02-21T13:14:45.800 に答える