客户端集成环信推送【被挤下线】原理及步骤

1.原理:

  被挤下线功能,即一个账号在A客户端保持登陆状态,然后又在B客户端进行了登陆操作,那么A客户端就会被挤下线。

当用户user1使用账号123456登录app后,用户user2在另一台手机使用同一账号123456登录,这时需要给A发通知给出提示,并强制user1下线。在app不在前台(包括完全退出和按了home键)的时候,不给提示,重新进入app给出提示.

那么其实有4种情况:

1.user1在app内,直接弹出dialog并强制下线;

非常好实现

2.user1按了home键

这时候是能收到消息的,但是不应该给出提示,需要在app onResume的时候弹出提示。我是这么做的,在Receiver的onReceive方法中进行状态保存(使用SP保存个值userLoginAnotherPlace),在BaseActiviy的onResume方法里进行判断,userLoginAnotherPlace的值变化了,那么弹出提示。

3.user1退出app,但是service仍然在后台运行,这时候是能收到推送消息的

同2.

4.user1完全杀死app,收不到推送消息,但是在很短的一段时间内重新打开app,消息仍然会收到。这时候因为极光会提供有限时长的离线消息

同1,但是有一个小问题(情况1一般不会出现,但是也是有可能的),一般app都有启动页,那其实不应该再启动页就弹出dialog,这样会造成非常差的用户体验,所以在弹出dialog的时候要对当前正在运行的Activity进行判断。

5.user1完全杀死app,收不到推送消息,但是过了很长的一段时间后重新打开app,消息不会收到。

这时候会出现这种现象,user1和user2同时登录成功。但是没给user1提示。所以在启动的时候强制用户user1自动登录来进行状态的判别,比如返回200是正常登录成功,自动登录返回203(注:自动登录和正常登录的服务器接口需要区分开,可以使用不同接口,也可以通过添加参数来标识)

2.说明:

Android SDK 导入

集成前准备

注册并创建应用

手动复制jar包及so导入

环信官网下载环信 SDK。

考虑到开发者需求不一样,在下载的 SDK 中,提供了两个不同的 jar 包:

  • 一个是 libs 下带实时语音功能和实时视频功能的 jar 包和 so 文件。

  • 如果你不需要实时语音、实时视频功能,那就直接用 libs.without.audio 文件夹下的 jar 包及 so 文件。

SDK 目录讲解

从官网上下载下来的包,解压后内容如下:

SDK目录

在这里主要介绍后面四个文件夹内容:

  • doc 文件夹:SDK 相关 API 文档

  • examples 文件夹:ChatDemoUI3.0(Demo,依赖 EaseUI 库)、EaseUI

  • libs.av 文件夹:包含IM和实时音视频功能所需要的 jar 和 so 文件

  • libs.lite 文件夹:无实时语音、实时视频功能的 SDK 包,如果项目中只用到聊天功能,可以把项目里的 jar 和 so 文件替换成此文件夹里的文件

配置工程

导入 SDK

在自行开发的应用中,集成环信聊天需要把 libs 文件夹下的 jar 及 so 文件复制到你的项目的 libs 文件夹相应位置,如果不需要语音和视频通话功能,导入libs.lite 下的文件即可。

配置信息

在清单文件 AndroidManifest.xml 里加入以下权限,以及写上你注册的 AppKey。


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值