Frage

Kann ich Online-Nutzer in meiner Freundesliste über Smack API? Ist es möglich?

Ich arbeite an app, die Chat zwischen Benutzern haben. Ich hatte erfolgreich Chat-Anwendung Beispiel erstellt nur Name von Freund und senden Chat eingeben, aber jetzt möchte ich Online-Freunde-Liste.

War es hilfreich?

Lösung

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());
}

Andere Tipps

    XMPPConnection.addConnectionCreationListener(new 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());
            }

        }
    });

So zu Beginn des Programms, dass XMPPConnection Zuhörer registrieren, in der Regel nehmen sie einige Sekunden Verbindungsobjekt zu empfangen. Aber es wird nur funktionieren, wenn Sie creatEntry nur in diesem Fall Hahn verwenden werden diese erstellten Benutzer sehen.

Um creat Eintrag mit Roster verwenden nächsten Code:

try {
    rooster.createEntry("name", "user_id", null);
} catch (XMPPException e) {
    e.printStackTrace();
}

Ich habe keine Gruppe verwenden, und mit Erfolg sehen Benutzer auf dem zweiten Gerät.

scroll top