java - 如何在android中使用smack api获取聊天中的离线/在线用户列表

标签 java android livechat

我正在使用 xmpp 和 smack api 在 android 中编写聊天应用程序。当我输入特定 friend 的电子邮件 ID 以发送聊天时,聊天成功。但我无法获取离线/在线用户列表。请建议如何使用 xmpp smack 获取用户列表..?

最佳答案

你必须制作一个 listView 来获取用户列表并尝试此代码

 public static  ArrayList<HashMap<String, String>> usersList=new ArrayList<HashMap<String, String>>();


            Presence presence = new Presence(Presence.Type.available);
            Constants.connection.sendPacket(presence);
            setConnection(Constants.connection);

            final Roster roster = Constants.connection.getRoster();
            Collection<RosterEntry> entries = roster.getEntries();

            for (RosterEntry entry : entries) {

                    HashMap<String, String> map = new HashMap<String, String>();
                    Presence entryPresence = roster.getPresence(entry.getUser());

                    Presence.Type type = entryPresence.getType();       

                    map.put("USER", entry.getName().toString());
                    map.put("STATUS", type.toString());
                    Log.e("USER", entry.getName().toString());

                    usersList.add(map);

            }

然后将您的 userList 添加到您的 ListAdapter 并检查 STATUS 等于 'avialable' 那么用户在线,否则用户离线。

关于java - 如何在android中使用smack api获取聊天中的离线/在线用户列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20991060/

相关文章:

安卓视频缩略图

安卓源码分支

java - 在 Stream Start 之前访问 Flink Classloader

java - 转换日期时间并插入 MySQL

android - 如何使用senchatouch 2在android中实现phonegap应用

java - 我的 Java Web 应用程序的类似 Facebook 的聊天功能

android - Android 中的群聊

java - 聊天服务器 : what's the best(optimized) way to save a conversation log

java - Metaphone 算法的意外结果

java - 将 Oauth 2.0 添加到基于 Jersey 的 RESTful 服务器