Android Can';使用PrivateDataManager和(a)Smack时,无法获得所有书签。始终仅返回最后一个书签
我添加了3-4个永久性会议室,并尝试在应用程序启动时连接任何一个会议室,但当我尝试获取所有带书签的会议室时,它只会返回一个会议室。 那个房间是上次加的Android Can';使用PrivateDataManager和(a)Smack时,无法获得所有书签。始终仅返回最后一个书签,android,chat,smack,asmack,multiuserchat,Android,Chat,Smack,Asmack,Multiuserchat,我添加了3-4个永久性会议室,并尝试在应用程序启动时连接任何一个会议室,但当我尝试获取所有带书签的会议室时,它只会返回一个会议室。 那个房间是上次加的 muc = new MultiMUC(connection, "g2@conference.msngr.com"); try { muc.create("g2"); Form form = muc.getConfigurationForm(); Form submitForm = form.crea
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);
}
BookmarkManager bm=BookmarkManager.getBookmarkManager(连接);
收集室=bm.getBookmarkedConferences();
(书签会议室:房间){
MultiUserChat muc=新的MultiMUC(连接,room.getJid());
muc.join(uid);
muc.addMessageListener(listener);
}
您似乎总是用创建的最新MUC覆盖书签PrivateData
不要直接使用PrivateDataManager,而是为此作业使用专用的。BookmarkManager提供了三种方法,可以方便地完成这项工作