番外篇:
1.在做界面时,总遇到输入键盘不能自己收起,导致需要手动收起键盘,使操作多一步,现在说一下我的流程,
检查键盘是否显示,代码如下:

private Context mContext;private View view;public InPutMethodManag(Context mContext,View view) {super();this.mContext = mContext;this.view = view;}/*** 查看输入键盘状态* @return false 输入法 关闭  否则打开* */public boolean IsOpen(){InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);return imm.isActive();}/*** 关闭弹出的输入法* */public void closeInput(){InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);imm.hideSoftInputFromWindow(view.getWindowToken(), 0);}

2.再次遇到这个问题,用Dialog时,Context出现问题,我在Adapter里调用dialog.show() 报错,因为我给Adapter传送的上下文用的是getApplicationContext()换成.this;就可以了,以后但凡用到Context时,我决定用.this。以防再遇到这问题,但是记得之前看过一个关于Context的文章,结果给忘了。。。。

言归正传:
前一篇文章完成查找好友与界面显示问题,这篇文章主要完成用户点击“添加”按钮后客户端与服务器的交互问题,属于后端处理。我认为流程图如下:

先介绍第1步,A向服务器发送添加B请求,我按BMOB官方资料处理,
首先 获取用户B的objectId —— 用户的唯一标示符

private void getTargetUserInstallId(String objectId,FindListener<BmobChatUser> findcallback) {BmobQuery<BmobChatUser> query = new BmobQuery<BmobChatUser>();query.addWhereEqualTo("objectId", objectId);query.findObjects(globalContext, findcallback);}

然后 确定用户B存在后,将“tag 消息类型” 用户信息 封装成JSON

public static BmobMsg createTagSendMsg(Context context,String tag, String targetId,BmobChatUser currentUser){BmobChatUser user = BmobUserManager.getInstance(context).getCurrentUser();BmobMsg msg = new BmobMsg(tag, targetId,user.getObjectId(), user.getUsername(), user.getAvatar(), user.getNick(), String.valueOf(BmobUtils.getTimeStamp()),BmobConfig.INVITE_ADD_NO_VALIDATION);return msg;}

最后 将封装的JSON数据 根据设备类型推送消息到指定平台 (根据BMOB官方)

private void send(BmobChatUser user, JSONObject json,PushListener pushCallback) {String installationId = user.getInstallId();String deviceType = user.getDeviceType();BmobQuery<BmobInstallation> query = BmobInstallation.getQuery();if (deviceType != null && deviceType.equals("ios")) {query.addWhereEqualTo("deviceToken", installationId);} else {query.addWhereEqualTo("installationId", installationId);}bmobPush.setQuery(query);bmobPush.pushMessage(json, pushCallback);}

至此完成了第1步,用户A向服务器发送添加B请求。
接下来完成服务器向B发送推送消息,介绍第二步:

BmobIM内部集成了BmobPush服务的,所以需要在官网管理后台的消息推送->推送设置->应用包名中填写应用的正确包名。

Android_聊天软件_加好友_与服务器交互相关推荐

  1. Android_聊天软件_添加好友_与服务器交互

    上一篇文章介绍了用户A向服务器发送添加B的请求,这篇文章介绍服务器通知用户B,以及用户B同意与否的操作. 好久没有更新文章,主要是前段时间花了2天时间帮别人画了点东西,还有就是充电了,主要是Servi ...

  2. java 操作鼠标实现qq加好友_易语言通过按键模拟的方式实现QQ后台加人加群的代码...

    DLL命令表 .版本 2 .DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA" .参数 lpM ...

  3. 英雄联盟怎么解除小窗口_英雄联盟手游怎么加好友_英雄联盟手游怎么加好友一起玩_资讯...

    英雄联盟手游是腾讯联合英雄联盟开发商拳头开发的英雄联盟手游.不仅能够高度还原端游的经典操作和竞技体验,也具有非常多创新的元素,对于英雄联盟的全球生态布局具有重要意义.英雄联盟手游游戏中有非常多的英雄可 ...

  4. 随时随地跟任何QQ用户聊天,不用加好友也行

    机器必须安装qq 2005,如果未运行qq会提示你是否启动qq,如果开着qq将打开聊天窗口: 具体点就是这句: http://wpa.qq.com/msgrd?V=1&Uin=对方号码& ...

  5. python 实战之模仿开发QQ聊天软件(三)TCP/IP服务器与客户端建设

    无论是p2p还是c/s还是b/s,只要用到通讯,必然是要用到今天写的这个. python+MYSQL 在pycharm中的使用 TCP/IP是网络软件最核心的部分,缺少这个你只能当做单机游戏玩. TC ...

  6. 悟空qq通讯录加好友

    这款软件批量操作加好友,可以日加上千好友. 如果加的人精准的话,一天1000好友,随便买什么都能够赚的不错的收入. 如果按照市场上的粉丝价格来看的话,一个粉丝最低是1元左右,贵点的几块.几十块. 一般 ...

  7. 中油即时通信电脑版_一文看懂云视频会议与即时聊天软件的差别

    进入互联网时代,便捷.高效的云视频会议受到中小企业的青睐,人们通过租赁云视频会议账号,即可在视频会议室.个人电脑.智能手机上发起远程视频会议.不过随着5G等通信网络的普及,人们基于即时聊天软件进行视频 ...

  8. 机器人聊天软件c#_聊天机器人_c#应用

     用 .net 研发 msn 聊天机器人 _c# 应用 写在前面: 我不是研发人员,不是高手,就是自己比较爱玩.在技术上,没有什 么喜欢摸索的精神,而是喜欢投机取巧.在这篇文章里,你也不能 &quo ...

  9. jq 点击按钮跳转到微信_实现点击复制微信号并自动打开微信加好友

    原地址:https://www.xuewangzhan.net/jquery/21100.html 复制按钮xyz2018 点击复制 clipboard.on('success', function( ...

最新文章

  1. HBuilder简单入门
  2. 用栈来表示队列,用队列来表示栈
  3. hdu1285 拓扑排序(裸)
  4. C# Lazy Loading
  5. flutter GestureDetector 手势处理
  6. 降为千元机!小米6X 6+64G版到手价999元
  7. 【转】如何删除一个repository(仓库)
  8. 细说php第四版笔记,细说PHP 学习笔记(二)
  9. 清除 input 的历史记录
  10. golang gin框架全局捕获500和404
  11. https安全证书过期的原因
  12. 小说里的编程 【连载之十六】元宇宙里月亮弯弯
  13. 1080p显示器与2k的差别究竟有多大?该如何选择
  14. ps-混合模式使用技巧
  15. 微信电话显示对方忙是为什么 微信电话显示对方忙是什么意思
  16. 表值函数,标量值函数详解
  17. 吴思里:字节前端面试经历
  18. Win11如何将右下角图标全部显示?Win11将右下角图标全部显示
  19. ansible安装Mysql 5.7.30
  20. 企业管理OA系统在企业数字化转型中带来的变化,简直难以想象

热门文章

  1. Yarn ContainerExecutor 配置与使用
  2. 电影垂直社交,移动电影院App先行
  3. AOI检测光学成像标准
  4. 【DSP】TMS320F28335的SCI模块
  5. python 视频加滤镜 moviepy opencv
  6. 教你韵达、邮政快递物流信息批量查询
  7. [日推荐]『传图识字』让人工智能帮你识别照片里的文字!
  8. 基于leaflet完成框选功能(不随地图缩放)并截图打印
  9. vue里面的v-bind三元表达式
  10. 360°透视:云原生架构演进