Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Can';使用PrivateDataManager和(a)Smack时,无法获得所有书签。始终仅返回最后一个书签_Android_Chat_Smack_Asmack_Multiuserchat - Fatal编程技术网

Android Can';使用PrivateDataManager和(a)Smack时,无法获得所有书签。始终仅返回最后一个书签

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

我添加了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);

                    }
BookmarkManager bm=BookmarkManager.getBookmarkManager(连接);
收集室=bm.getBookmarkedConferences();
(书签会议室:房间){
MultiUserChat muc=新的MultiMUC(连接,room.getJid());
muc.join(uid);
muc.addMessageListener(listener);
}

您似乎总是用创建的最新MUC覆盖书签PrivateData

不要直接使用PrivateDataManager,而是为此作业使用专用的。BookmarkManager提供了三种方法,可以方便地完成这项工作