java - smack RosterListener 在 Android 中不工作

标签 java android smack

目前我正在使用 Xmpp SMACK API 工作聊天应用程序。但是当我调用 addrosterListener 时,我没有获得 Presence 当前状态。我必须引用 http://www.igniterealtime.org/builds/smack/docs/3.2.2/javadoc/org/jivesoftware/smack/RosterListener.html .请帮助我。

roster.addRosterListener(new RosterListener() {
                        @Override
                        public void presenceChanged(Presence presence) {


                            Log.d("pewsence ", "pewsence Status: " + presence.getFrom());
                            Log.d("pewsence ", "pewsence to Status: "
                                    + presence.getTo() + " " + presence);

                            // Called when the presence of a roster entry is
                            // changed
                        }

                        @Override
                        public void entriesUpdated(Collection<String> arg0) {
                            // Called when a roster entries are updated.

                        }

                        @Override
                        public void entriesDeleted(Collection<String> arg0) {
                            // Called when a roster entries are removed.
                        }

                        @Override
                        public void entriesAdded(Collection<String> arg0) {
                            // Called when a roster entries are added.
                        }
                    });
                }
            }
        });

这个监听器是在创建 Activity 时调用的。我认为引用所有文档,当presense发生变化时会自动调用这个监听器。

提前致谢。

最佳答案

roster = connection.getRoster();

            // Get all rosters
            Log.i("roster", "roster=" + connection.isConnected() + "-" + roster);
            Collection<RosterEntry> entries = roster.getEntries();
            // loop through
            for (RosterEntry entry : entries) {
                Presence entryPresence = roster.getPresence(entry.getUser());
                Presence.Type userType = entryPresence.getType();

            }

使用此代码,您必须获取所有在线或离线用户。您可以与任何人聊天。

关于java - smack RosterListener 在 Android 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17991739/

相关文章:

java - Gradle 任务的 doFirst() 不会首先执行,而是在任务完成之后执行

java - 当应用程序处于后台或被终止时,如何启动我的应用程序或收到通知的 Activity ?

android - react native - :expo-modules-core:compileDebugKotlin error

java - Smack API 和 Java

android - 如何在android中的aSmack xmpp中创建组?

java - 有没有一种简单的方法可以在 Oracle 中克隆表的结构?

Java双缓冲——访问后像

java - smack jitsi-jingle 示例

java - 从 String[] 转换为 String,然后再次转换为 String[]

android - 如果单击通知时 Activity 已打开,则不要打开 Activity