2012-04-02 74 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

相關問題