融云之修改在群的備注和修改群名

目的:修改自己在本群的昵稱吼和,別人收到消息時顯示昵稱拉鹃,而不是真實昵稱

注意:修改在群中的昵稱需要注意兩個點:第一個自身群昵稱的改變擎值,第二個要通知別的群里慌烧,修改自己的昵稱。

思路:

  1. 當修改自己在群的昵稱的時候鸠儿,進行刷新自身的群昵稱屹蚊,該方法為如以下代碼所示(文檔傳送門)
 /**
     * 更新本地昵稱
     */
    private void refreshGroupLocalNickName(String name) {
        GroupUserInfo info = new GroupUserInfo(fromConversationId, SharedPreferencesUtil.getString(MyApplication.getInstance().getApplicationContext(),"uid"), name);
        RongIM.getInstance().refreshGroupUserInfoCache(info);
    }
  1. 設置發(fā)送消息監(jiān)聽器厕氨,判斷群昵稱是否與原昵稱是否相同,如果相同就不添加extra字段汹粤,如果不同就應該添加extra字段
    private void setSendMessageListener() {
        RongIM.getInstance().setSendMessageListener(new RongIM.OnSendMessageListener() {
            @Override
            public Message onSend(Message message) {
                if (null != message.getContent() && message.getContent() instanceof TextMessage) {
                    TextMessage txtMsg = (TextMessage) message.getContent();
                    if (null != txtMsg) {
                        if (mConversationType.equals(Conversation.ConversationType.GROUP)) {
                            //獲取群昵稱查看群昵稱是否與原昵稱相同命斧,相同就不增加extra字段
//                            requestGroupNickName(mTargetId);
                            GroupUserInfo groupUserInfo = RongUserInfoManager.getInstance().getGroupUserInfo(mTargetId, SharedPreferencesUtil.getString(MyApplication.getInstance().getApplicationContext(),"uid"));
                            //必須去判斷是否為空,否則會報空指針
                            if (null != groupUserInfo) {
                                if (null != groupUserInfo.getNickname()) {
                                    if (!groupUserInfo.getNickname().equals(MyApplication.getInstance().getUser().getNickname())) {
                                        txtMsg.setExtra(groupUserInfo.getNickname() + GroupChatInfoActivity.GROUP_NICKNAME_EXTRA + MyApplication.getInstance().getUser().getNickname());
                                    }
                                }
                            }
                        } else if (mConversationType.equals(Conversation.ConversationType.PRIVATE)) {
                            //在私聊的過程中會有閱后即焚的條目
                            if (is_burn) {
                                txtMsg.setExtra(DELETE_TAG);
                            }
                        }
                    }
                }
                return message;
            }

            @Override
            public boolean onSent(Message message, RongIM.SentMessageErrorCode sentMessageErrorCode) {
                if (message.getSentStatus() == Message.SentStatus.FAILED) {
                    if (sentMessageErrorCode == RongIM.SentMessageErrorCode.NOT_IN_CHATROOM) {
                        //不在聊天室
                    } else if (sentMessageErrorCode == RongIM.SentMessageErrorCode.NOT_IN_DISCUSSION) {
                        //不在討論組
                    } else if (sentMessageErrorCode == RongIM.SentMessageErrorCode.NOT_IN_GROUP) {
                        //不在群組
                    } else if (sentMessageErrorCode == RongIM.SentMessageErrorCode.REJECTED_BY_BLACKLIST) {
                        //你在他的黑名單中
                    }
                }
                MessageContent messageContent = message.getContent();
                if (messageContent instanceof TextMessage) {//文本消息
                    TextMessage textMessage = (TextMessage) messageContent;
                    Log.d(TAG, "onSent-TextMessage:" + textMessage.getContent());
                } else if (messageContent instanceof ImageMessage) {//圖片消息
                    ImageMessage imageMessage = (ImageMessage) messageContent;
                    Log.d(TAG, "onSent-ImageMessage:" + imageMessage.getRemoteUri());
                } else if (messageContent instanceof VoiceMessage) {//語音消息
                    VoiceMessage voiceMessage = (VoiceMessage) messageContent;
                    Log.d(TAG, "onSent-voiceMessage:" + voiceMessage.getUri().toString());
                } else if (messageContent instanceof RichContentMessage) {//圖文消息
                    RichContentMessage richContentMessage = (RichContentMessage) messageContent;
                    Log.d(TAG, "onSent-RichContentMessage:" + richContentMessage.getContent());
                } else {
                    Log.d(TAG, "onSent-其他消息玄括,自己來判斷處理");
                }

                /**
                 * 只支持文本閱后即焚
                 */
                if (null != message && message.getContent() instanceof TextMessage) {
                    TextMessage txtMsg = (TextMessage) message.getContent();
                    if (null != txtMsg.getExtra() && txtMsg.getExtra().toString().equals(DELETE_TAG)) {
                        sendMessageIds.add(message.getMessageId()); //獲取發(fā)送的id ,進行焚燒狀態(tài)
                        setSendReadReceiptRequest(message);
                    }
                }

                return false;
            }
        });
    }
  1. 設置接收監(jiān)聽器冯丙,在接收監(jiān)聽器中查看是否存在該extra字段,如果存在就進行相應的操作(這里需要注意的是如果用extra添加昵稱信息遭京,只有修改昵稱的那個用戶給你發(fā)消息胃惜,自己的昵稱才會改變)
 if (null != message.getContent() && message.getContent() instanceof TextMessage) {
                    TextMessage txtMsg = (TextMessage) message.getContent();
                    //                   用于修改相應的群組昵稱
                    if (null != txtMsg.getExtra() && txtMsg.getExtra().indexOf(GroupChatInfoActivity.GROUP_NICKNAME_EXTRA) != -1) {
                        String[] str = txtMsg.getExtra().split(GroupChatInfoActivity.GROUP_NICKNAME_EXTRA);
                        //應該怎么去處理呢
                        if (message.getConversationType().equals(Conversation.ConversationType.GROUP)) {
                            GroupUserInfo groupUserInfo = RongUserInfoManager.getInstance().getGroupUserInfo(message.getTargetId(), message.getSenderUserId());
                            if (!str[1].equals(str[0])) {
                                GroupUserInfo info = new GroupUserInfo(message.getTargetId(), message.getSenderUserId(), str[0]);
                                RongIM.getInstance().refreshGroupUserInfoCache(info);
                            }


                        }
                    }
                }

需要注意:當時修改群昵稱的過程中與設置閱后即焚的extra會出現沖突,即如果即改變了群昵稱哪雕,又需要閱后即焚,所以最后群昵稱只是在群中船殉,閱后即焚針對的私聊

另外一種思路:利用provider方法

  1. 修改相應的昵稱,通過刷新 RonIm.getInstance.refreshGroupUserInfoCache()斯嚎,刷新本地信息
    2.在Application階段通過相應的GroupUserInfoProvider()獲取相應的信息利虫,通過后臺server端獲取相應的修改的群昵稱。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末堡僻,一起剝皮案震驚了整個濱河市糠惫,隨后出現的幾起案子,更是在濱河造成了極大的恐慌钉疫,老刑警劉巖硼讽,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異牲阁,居然都是意外死亡固阁,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門城菊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來备燃,“玉大人,你說我怎么就攤上這事凌唬〔⑵耄” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵客税,是天一觀的道長况褪。 經常有香客問我,道長霎挟,這世上最難降的妖魔是什么窝剖? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任麻掸,我火速辦了婚禮酥夭,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己熬北,他們只是感情好疙描,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著讶隐,像睡著了一般起胰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上巫延,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天效五,我揣著相機與錄音,去河邊找鬼炉峰。 笑死畏妖,一個胖子當著我的面吹牛,可吹牛的內容都是我干的疼阔。 我是一名探鬼主播戒劫,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼婆廊!你這毒婦竟也來了迅细?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤淘邻,失蹤者是張志新(化名)和其女友劉穎茵典,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體列荔,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡敬尺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了贴浙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砂吞。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖崎溃,靈堂內的尸體忽然破棺而出蜻直,到底是詐尸還是另有隱情,我是刑警寧澤袁串,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布概而,位于F島的核電站,受9級特大地震影響囱修,放射性物質發(fā)生泄漏赎瑰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一破镰、第九天 我趴在偏房一處隱蔽的房頂上張望餐曼。 院中可真熱鬧压储,春花似錦、人聲如沸源譬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽踩娘。三九已至刮刑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間养渴,已是汗流浹背雷绢。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留理卑,地道東北人习寸。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像傻工,于是被迫代替她去往敵國和親霞溪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內容