上一篇文章介绍了用户A向服务器发送添加B的请求,这篇文章介绍服务器通知用户B,以及用户B同意与否的操作。

好久没有更新文章,主要是前段时间花了2天时间帮别人画了点东西,还有就是充电了,主要是、、这些后台运行的知识。

其中有一条是,开启一个与服务器保持推送,开启广播接收,重写完成相应操作,并把广播终结掉。

被添加方B收到服务器发来的A的请求添加关系后的动作。

这里写图片描述

界面提示,细节——如果点击了“新朋友”则取消显示

这里写图片描述

这里写图片描述

”同意“”忽略“点击都是将信息封装成相应格式的JSON然后发送至服务器,然后服务器将信息推送至请求方A,因为客户端与有服务器维系关系的推送的,后台接收到信息后按Tag进行区分后,进行不同的动作,代码如下:

//添加好友
            if(tag.equals(BmobConfig.TAG_ADD_CONTACT)){     
                BmobInvitation message = ChatManage.getInstance(context).saveReceiveInvite(json, toId);
                if(currentUser!=null){//有登陆用户
                    if(toId.equals(currentUser.getObjectId())){
                        if (ehList.size() > 0) {// 有监听的时候,传递下去
                            for (EventListener handler : ehList)
                                handler.onAddUser(message);
                        }else{
                            showOtherNotify(context, message.getFromname(), toId,  message.getFromname()+"请求添加好友", NewFriendAdd.class);
                        }
                    }
                }
            }
            //好友同意添加
            else if(tag.equals(BmobConfig.TAG_ADD_AGREE)){
                String username = BmobJsonUtil.getString(jo, BmobConstant.PUSH_KEY_TARGETUSERNAME);
                //收到对方的同意请求之后,就得添加对方为好友--已默认添加同意方为好友,并保存到本地好友数据库
                BmobUserManager.getInstance(context).addContactAfterAgree(username, new FindListener() {
                    @Override
                    public void onError(int arg0, final String arg1) {
                        // TODO Auto-generated method stub
                    }
                    @Override
                    public void onSuccess(List arg0) {
                        // TODO Auto-generated method stub
                        //保存到内存中
                        CustomApplcation.getInstance().setContactList(CollectionUtils.list2map(BmobDB.create(context).getContactList()));
                    }
                });
                //显示通知
                showOtherNotify(context, username, toId,  username+"同意添加您为好友", Height_Chat_Frag.class);
                //创建一个临时验证会话--用于在会话界面形成初始会话
                BmobMsg.createAndSaveRecentAfterAgree(context, json);
            }

同意添加好友代码如下:

/** 同意对方的添加好友请求:此方法默认在添加成功之后:1、更新本地好友数据库,2、向请求方发生同意tag请求,3、保存该好友到本地好友库
      * @Title: agreeAddContact
      * @Description: TODO
      * @param  msg 好友请求
      * @param  updateCallback  
      * @return 
      * @throws
      */
    public void agreeAddContact(final BmobInvitation msg,final UpdateListener updateCallback){
        //添加好友
        addContact(msg.getFromname(), new UpdateListener() {
            @Override
            public void onSuccess() {
                // TODO Auto-generated method stub
                //更新本地请求好友
                BmobDB.create(context).updateAgreeMessage(msg.getFromname());
                //发送tag请求
                ChatManage.getInstance(context).sendTagMessage(BmobConfig.TAG_ADD_AGREE, msg.getFromid());
                //保存此好友到本地数据库中  
                BmobDB.create(context).saveContact(msg);
                updateCallback.onSuccess();
            }
            @Override
            public void onFailure(int arg0, final String arg1) {
                // TODO Auto-generated method stub
                updateCallback.onFailure(arg0, arg1);
            }
        });
    }

至此完成,聊天软件 用户添加 功能,下面介绍。聊天功能。

标签: 安卓qq通讯录 android好友列表界面 安卓qq怎么加好友 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。