XMPP aSmack - How can I get the current user state (offline/online/away/etc.)?

前端 未结 5 2127
自闭症患者
自闭症患者 2020-12-08 15:54

I am new to xmpp/asmack in android.

Can anyone please help me in getting the presence of the user\'s friends ( roster list)

I am using this :



        
5条回答
  •  生来不讨喜
    2020-12-08 16:31

            roster.addRosterListener(new RosterListener() {
    
            public void entriesAdded(Collection param) {}
    
            public void entriesDeleted(Collection addresses) {
            }
            public void entriesUpdated(Collection addresses) {  
            }
            public void presenceChanged(Presence presence) {
    
                String user = presence.getFrom();
                Presence bestPresence = roster.getPresence(user);
    
                Log.d(TAG, "BestPresence: " + user + ": " + bestPresence);
    
                String[] temp = presence.getFrom().split("\\@");
                Log.d(TAG, "Presence: " + temp[0] + "-" + presence.toString());
    
                String status = presence.toString();
                // ShowInfoDialog(temp[0]+"is "+status);
    
                for (int i = 0; i < friendslist.size(); i++) {
    
                    if (temp[0].equalsIgnoreCase(friendslist.get(i).getName())) {
    
                        friendslist.get(i).setStatus(status);
                        Log.d(TAG, "kilepet/belepet " + friendslist.get(i).getName() + " - " + friendslist.get(i).getStatus());
    
                        // ShowInfoDialog(friendslist.get(i).getName()+"is "+status);
                        Log.d(TAG, "WATERFAK");
    
                    }
                }
    
            }
    

    If you use RosterListener, it updates the presence in real time, it works for me just fine.

提交回复
热议问题