Android_聊天软件_加好友_与服务器交互
番外篇:
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_聊天软件_加好友_与服务器交互相关推荐
- Android_聊天软件_添加好友_与服务器交互
上一篇文章介绍了用户A向服务器发送添加B的请求,这篇文章介绍服务器通知用户B,以及用户B同意与否的操作. 好久没有更新文章,主要是前段时间花了2天时间帮别人画了点东西,还有就是充电了,主要是Servi ...
- java 操作鼠标实现qq加好友_易语言通过按键模拟的方式实现QQ后台加人加群的代码...
DLL命令表 .版本 2 .DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA" .参数 lpM ...
- 英雄联盟怎么解除小窗口_英雄联盟手游怎么加好友_英雄联盟手游怎么加好友一起玩_资讯...
英雄联盟手游是腾讯联合英雄联盟开发商拳头开发的英雄联盟手游.不仅能够高度还原端游的经典操作和竞技体验,也具有非常多创新的元素,对于英雄联盟的全球生态布局具有重要意义.英雄联盟手游游戏中有非常多的英雄可 ...
- 随时随地跟任何QQ用户聊天,不用加好友也行
机器必须安装qq 2005,如果未运行qq会提示你是否启动qq,如果开着qq将打开聊天窗口: 具体点就是这句: http://wpa.qq.com/msgrd?V=1&Uin=对方号码& ...
- python 实战之模仿开发QQ聊天软件(三)TCP/IP服务器与客户端建设
无论是p2p还是c/s还是b/s,只要用到通讯,必然是要用到今天写的这个. python+MYSQL 在pycharm中的使用 TCP/IP是网络软件最核心的部分,缺少这个你只能当做单机游戏玩. TC ...
- 悟空qq通讯录加好友
这款软件批量操作加好友,可以日加上千好友. 如果加的人精准的话,一天1000好友,随便买什么都能够赚的不错的收入. 如果按照市场上的粉丝价格来看的话,一个粉丝最低是1元左右,贵点的几块.几十块. 一般 ...
- 中油即时通信电脑版_一文看懂云视频会议与即时聊天软件的差别
进入互联网时代,便捷.高效的云视频会议受到中小企业的青睐,人们通过租赁云视频会议账号,即可在视频会议室.个人电脑.智能手机上发起远程视频会议.不过随着5G等通信网络的普及,人们基于即时聊天软件进行视频 ...
- 机器人聊天软件c#_聊天机器人_c#应用
用 .net 研发 msn 聊天机器人 _c# 应用 写在前面: 我不是研发人员,不是高手,就是自己比较爱玩.在技术上,没有什 么喜欢摸索的精神,而是喜欢投机取巧.在这篇文章里,你也不能 &quo ...
- jq 点击按钮跳转到微信_实现点击复制微信号并自动打开微信加好友
原地址:https://www.xuewangzhan.net/jquery/21100.html 复制按钮xyz2018 点击复制 clipboard.on('success', function( ...
最新文章
- HBuilder简单入门
- 用栈来表示队列,用队列来表示栈
- hdu1285 拓扑排序(裸)
- C# Lazy Loading
- flutter GestureDetector 手势处理
- 降为千元机!小米6X 6+64G版到手价999元
- 【转】如何删除一个repository(仓库)
- 细说php第四版笔记,细说PHP 学习笔记(二)
- 清除 input 的历史记录
- golang gin框架全局捕获500和404
- https安全证书过期的原因
- 小说里的编程 【连载之十六】元宇宙里月亮弯弯
- 1080p显示器与2k的差别究竟有多大?该如何选择
- ps-混合模式使用技巧
- 微信电话显示对方忙是为什么 微信电话显示对方忙是什么意思
- 表值函数,标量值函数详解
- 吴思里:字节前端面试经历
- Win11如何将右下角图标全部显示?Win11将右下角图标全部显示
- ansible安装Mysql 5.7.30
- 企业管理OA系统在企业数字化转型中带来的变化,简直难以想象