【发布时间】:2016-05-30 11:25:26
【问题描述】:
多用户聊天中的smack 状态监听器没有被调用。使用 Smack Api 登录,然后添加 roster.addRosterListener(mRoasterListener); 但是当聊天室的其他用户的存在发生变化时无法成功收听。我尝试了以下代码来让在线监听器工作:
connection.login(loginUser, passwordUser);
MultiUserChatManager manager =
MultiUserChatManager.getInstanceFor(connection);
muc = manager.getMultiUserChat(roomID + "@" +context.getString(R.string.group_chat_id));
Log.d("Join User: ", "Already Created");
muc.join(Utilities.getUserPhoneNo(context));
muc.addMessageListener(mGroupMessageListener);
Roster roster = Roster.getInstanceFor(connection);//luna
roster.addRosterListener(mRoasterListener);//roasterListener
Log.d("Joined User Phone: ", " " + Utilities.getUserPhoneNo(context));
这个类来监听状态变化......
public class RoasterListener implements RosterListener{
public RoasterListener(Context context){
}
@Override
public void entriesAdded(Collection<String> collection) {
}
@Override
public void entriesUpdated(Collection<String> collection) {
}
@Override
public void entriesDeleted(Collection<String> collection) {
}
@Override
public void presenceChanged(Presence presence) {
System.out.println("Presence changed: " + presence.getFrom() + " " + presence);
}
}
我尝试了许多 stackoverflow 提供的链接,但都没有成功。 请帮忙!
【问题讨论】:
-
我尝试了这些链接但没有开始工作:stackoverflow.com/questions/17991739/…
标签: java android smack multiuserchat user-presence