2012-04-02 20 views
1

Ich habe einen Benutzer von Openfire Admin-Seite erstellt. Ich habe den Benutzernamen, NAME, E-Mail, Passwort eingegeben.So erhalten Sie den aktuellen Benutzernamen in Smack

Ich schreibe einen Client in Android. Wie kann ich den NAMEN des aktuellen Benutzers erhalten? Ich habe versucht: (1) connection.getuser() - es gibt: [email protected]/smack (2) Selbst V-Card Get - es gibt nichts zum NAMEN Zusammenhang

Ich kann den Namen bekommen anderer Benutzer durch RosterEntry.getName(). Aber wie bekommt man den Namen des aktuellen Benutzers?

Ist es auch möglich, den Status des aktuellen Benutzers zu erhalten? (wie presence.getStatus())

Antwort

4

Sie können den Namen des aktuellen Benutzers abrufen, indem Sie den AccountManager mithilfe von getAccountAttribute verwenden und dann den Namen des Attributs angeben. In diesem Fall ist es Name“. Hier ist der Code für einfach Drucken Sie den Namen des aktuellen Benutzers

System.out.println("name = " + connection.getAccountManager().getAccountAttribute("name")); 

In Bezug auf Ihre zweite Frage können Sie natürlich wissen, dass die anderen Benutzer Anwesenheit in Ihrem Roster von roster.getPresence mit . Hier ist eine einfache Schleife, die die Anwendung dieser Methode

for(RosterEntry r:entries) { 
     Presence presence = roster.getPresence(r.getUser()); 
     System.out.println(presence.toXML()); 
    } 
+0

Dank zu illustrieren, das ist, was ich –

+1

auch tun will, ich will statt der Benutzer den Status des aktuellen Benutzers erhalten in ‚für (RosterEntry r : Einträge) '. Ist es möglich, es zu finden? –

+0

Im Moment wegen Änderungen in Smack, anstelle von connection.getAccountManager() sollte verwendet werden AccountManager.getInstance (Verbindung) –

Verwandte Themen