2012-04-02 72 views
1

我从openfire管理页面创建了一个用户。我输入了用户名,NAME,电子邮件,密码。如何在smack中获取当前用户的名字

我正在写Android的客户端。我如何获得当前用户的姓名?我曾尝试: (1)connection.getuser() - 返回:[email protected]/smack (2)获得自我名片 - 它没有返回值与名称

我能得到的名称其他用户由RosterEntry.getName()。但如何获得当前用户的名字?

另外,是否有可能获得当前用户的状态? (如presence.getStatus())

回答

4

您可以通过使用AccountManager使用getAccountAttribute来获取当前用户的名称,然后指定该属性的名称。在这种情况下,它是名字。”下面是简单的打印当前用户的名称

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

关于你提到的第二个问题,你当然可以通过使用roster.getPresence知道其他用户对您的花名册存在的代码这里是一个简单的循环来说明使用这种方法

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

感谢的,这就是我想要做的 – 2012-04-02 16:21:26

+1

另外,我想获得当前用户,而不是用户的身份在“为(RosterEntry [R :entries)'。是否有可能找到它? – 2012-04-02 16:26:11

+0

现在,由于Smack的变化,应该使用connection.getAccountManager()而不是connection.getAccountManager AccountManager.getInstance(连接) – 2017-02-09 08:18:02

相关问题