我添加了 3-4 个永久会议室,并尝试在应用程序启动时连接任何会议室,但是当我尝试获取所有已添加书签的房间时,它只会返回一个房间。那个房间是上次添加的。
muc = new MultiMUC(connection, "g2@conference.msngr.com");
try {
muc.create("g2");
Form form = muc.getConfigurationForm();
Form submitForm = form.createAnswerForm();
FormField ff = new FormField("muc#roomconfig_persistentroom");
ff.setType(FormField.TYPE_BOOLEAN);
ff.addValue("0");
ff.setRequired(true);
ff.setLabel("Make Room Persistent?");
submitForm.setAnswer("muc#roomconfig_persistentroom", true);
List owners = new ArrayList();
owners.add("userdev@msngr.com");
submitForm.setAnswer("muc#roomconfig_roomowners", owners);
muc.sendConfigurationForm(submitForm);
Bookmarks bookmarks = new Bookmarks();
BookmarkedConferenceImpl conference = new BookmarkedConferenceImpl("g2@conference.msngr.com");
conference.setName("My Favorite Room");
conference.setAutoJoin(true);
bookmarks.addBookmarkedConference(conference);
try
{
PrivateDataManager manager = new PrivateDataManager(connection,"userdev@msngr.com");
manager.setPrivateData(bookmarks);
}
catch (Exception e) { }
但是当我尝试获取所有 BookMarkedRoom 时,它会返回最后一个添加的会议室。
BookmarkManager bm = BookmarkManager.getBookmarkManager(connection);
Collection<BookmarkedConference> rooms=bm.getBookmarkedConferences() ;
for(BookmarkedConference room:rooms){
MultiUserChat muc = new MultiMUC(connection, room.getJid());
muc.join(uid);
muc.addMessageListener(listener);
}