美文网首页
Smack开发总结 (三)好友管理专题基本操作

Smack开发总结 (三)好友管理专题基本操作

作者: DevSiven | 来源:发表于2017-01-01 10:22 被阅读506次

《Smack开发总结 (三)好友管理专题基本操作》
转载请注明来自 傻小孩b_移动开发http://www.jianshu.com/users/d388bcf9c4d3)喜欢的可以关注我,不定期总结文章!您的支持是我的动力哈!

2016,再见。2017,你好。
2016年依然承载了太多美好的回忆,这一年培养了看书的习惯、培养了写博客的习惯。感谢过去努力的自己,寄望未来的自己。每天的时间安排,每天的小总结,每天的阅读,慢慢培养这些小细节。希望2017年的自己,向着自己的目标不断前行,技术、视野、规划。努力成为想要变成的自己!

上一篇文章,小结了smack的登录以及基本的好友管理回调,这一篇小结smack中对好友管理专题的基本操作,包括获取好友、添加好友、删除好友等操作。

(1)获取好友

    public void getAllRosters() {
        if (!mRoster.isLoaded()) {
            try {
                mRoster.reloadAndWait();
            } catch (SmackException.NotLoggedInException |
                    SmackException.NotConnectedException |
                    InterruptedException e) {
                e.printStackTrace();
            }
        }
      // 这里获取好友后会回调到 rosterEntires 方法,具体看上一篇文章
        mRoster.getEntriesAndAddListener(this, this);
    }

(2)删除好友

    public void deleteRoster(String user) {
        RosterEntry entry = mRoster.getEntry(user);
        if (entry != null) {
            try {
                mRoster.removeEntry(entry);
            } catch (SmackException.NotLoggedInException |
                    SmackException.NoResponseException |
                    XMPPException.XMPPErrorException |
                    SmackException.NotConnectedException e) {
                e.printStackTrace();
            }
        }

(3)添加好友

 private void addRosyer(String user, String name, String[] groupName) {
        if (mConnection.isAuthenticated()) {
            try {
                mRoster.createEntry(user, name, groupName);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

(4)改变好友分组

public void updateRosterByGroup(String user, String curGroup, String mvGroup) {
        RosterGroup cGroup = mRoster.getGroup(curGroup);
        RosterGroup mGroup = mRoster.getGroup(mvGroup);
        RosterEntry entry = null;
        if (cGroup != null) {
            entry = cGroup.getEntry(user);
            if (entry != null) {
                try {
                    if (mGroup == null) {
                        // 不存在该分组 即创建
                        mGroup = mRoster.createGroup(mvGroup);
                    }
                    cGroup.removeEntry(entry);
                    mGroup.addEntry(entry);
                } catch (SmackException.NoResponseException |
                        SmackException.NotConnectedException |
                        XMPPException.XMPPErrorException e) {
                    e.printStackTrace();
                }
            }
        }
    }

(5)更新好友分组名称

  public void setGroupName(String groupName, String modifyName) {
        RosterGroup group = mRoster.getGroup(groupName);
        if (group != null) {
            try {
                group.setName(modifyName);
            } catch (SmackException.NotConnectedException |
                    SmackException.NoResponseException |
                    XMPPException.XMPPErrorException e) {
                e.printStackTrace();
            }
        }
    }

(6)添加分组

    public void addGroup(String groupName) {
        mRoster.createGroup(groupName);
    }

对于群聊,在默认的openfire提供的是聊天室的功能。如果要实现类似QQ群的功能,更加强化重视熟人之间、强化信息分享、具有可沉淀性。而不是陌生人居多的聊天室,因此群聊是需要自己重新设计开发,这个有兴趣的开发者可以了解下openfire的插件开发,有兴趣的可以联系我,一起学习开发。

傻小孩b mark共勉,写给在成长路上奋斗的你

相关文章

网友评论

      本文标题:Smack开发总结 (三)好友管理专题基本操作

      本文链接:https://www.haomeiwen.com/subject/gvabvttx.html