在花名册列表中添加用户不起作用
Posted
技术标签:
【中文标题】在花名册列表中添加用户不起作用【英文标题】:adding user in roster list isn't working 【发布时间】:2018-02-02 10:47:50 【问题描述】:我正在创建一个简单的一对一聊天应用程序,我已经完成了消息的发送和接收。现在我正在尝试向另一个(联系人)显示用户的状态,例如“在线/离线”等。为此,我必须使用 Presence 和 Roster。但我不知道在哪里以及如何使用它,我的意思是订阅请求和接受的完整流程以及订阅后的用户状态,即在线/离线等。
【问题讨论】:
你试过了吗? 【参考方案1】:首先您需要发送并接受联系请求
从Open-fire你也可以从后端
步骤: 首先点击用户/组>>点击“用户名”>>点击名册>>添加名册
这里我附上步骤屏幕
点击添加新项目添加花名册
编辑名册并同时选择订阅
然后您将使用此代码获得名册列表
ArrayList<RosterEntry> rosterLists = new ArrayList<>();
public List<RosterEntry> getFriendsList() throws SmackException.NotLoggedInException, InterruptedException, SmackException.NotConnectedException
rosterLists = new ArrayList<>();
roster = Roster.getInstanceFor(Config.conn1);//connection object of AbstractXMPPConnection
if (!roster.isLoaded())
roster.reloadAndWait();
Log.e("Roster :", "Reload and wait");
Collection<RosterEntry> entries = roster.getEntries();
Log.e("Size of Roster :", entries.size() + "");
for (RosterEntry entry : entries)
rosterLists.add(entry);
Log.d("Buddies", "Here: " + entry.toString());
Log.d("Buddies", "User: " + entry.getUser());//get userinfo
Log.d("Buddies", "User Name:" + entry.getName());//get username
Log.d("Buddies", "User Status: " + entry.getStatus());//get status of user
listAdapter = new FriendUserListAdapter(UserListActivity.this, rosterLists);
user_list.setAdapter(listAdapter);
return rosterLists;
订阅类型和订阅类型有什么区别??? 当任何用户添加 bot 有他/她的联系人时,在整个过程结束时,ofRoster(openfire) 表的订阅状态设置为“来自”。这个过程的期望结果是“两者”
【讨论】:
我在 Openfire 中创建了两个用户,当我尝试将用户添加到名册中时,我可以在 openfire 中看到两个用户的名册列表。但就我而言,订阅类型来自一个混淆。两个用户都以编程方式订阅。那么订阅类型和订阅类型有什么区别??? 当任何用户添加bot有他/她的联系人时,那么在整个过程结束时,ofRoster(openfire)表的订阅状态设置为'from'。这个过程的期望结果是“两者”。 参考这个-igniterealtime.org/projects/openfire/plugins/subscription/… 希望我的回答对您有帮助,请您点赞和打勾吗? 您想要获取名册列表的位置,它将在用户列表中返回以上是关于在花名册列表中添加用户不起作用的主要内容,如果未能解决你的问题,请参考以下文章