本系列知识点来自于:b站尚硅谷Android通信实战。

一、环信集成概述

环信和用户体系的集成主要发生在2个地方,服务器端集成和客户端集成。

1.1发送消息过程

客户端通过环信服务器进行消息发送。如下图所示:

  • 在线状态:客户端A发送消息到环信服务器,环信服务器推送消息到客户端B。

  • 离线状态:客户端A发送消息到环信服务器,环信服务器检测到客户端B不在线,会添加到离线缓存中,当客户端B登录后服务器会把离线消息推送给客户端B。

1.2聊天记录保存

客户端A发送消息到环信服务器的同时,SDK 会保存这条消息到本地数据库(SDK 内部创建数据库,不允许直接操作),环信服务器在推送消息到客户端B的同时也会在服务器记录下来(消息历史记录免费存储3天),客户端B收到消息后,SDK 会将这条消息存储到本地数据库。

注:客户端并未提供去服务器获取聊天记录的接口,所以,如果换了设备或者清空了数据,聊天记录都不会存在。如果有需求要从服务器拉取聊天记录,可以在自己服务器处理。

二、下载对应的SDK

环信官网:

环信即时通讯云https://console.easemob.com

下载好最新的sdk后——>解压得到如下文件夹

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

  • examples 文件夹:EaseIm3.0 (修改好配置之后可以直接使用)

  • libs 文件夹:包含 IM 功能所需要的 jar 和 so 文件

  • tools 文件夹:工具类文件

2.1 Android SDK 介绍

环信 SDK 为用户开发 IM 相关的应用提供的一套完善的开发框架。包括以下几个部分:

  • SDK_Core 为核心的消息同步协议实现,完成与服务器之间的信息交换。

  • SDK 是基于核心协议实现的完整的 IM 功能,实现了不同类型消息的收发、会话管理、群组、好友、聊天室等功能。

  • EaseIMKit 是一组 IM 相关的 UI 控件,旨在帮助开发者快速集成环信 SDK。

开发者可以基于 EaseIMKit 或者环信 SDK 开发自己的应用,前者因为把消息的发送接送等功能封装到了内部,集成时开发者不需要太关心消息是怎么发送、怎么接收等逻辑。请查阅EaseIMKit 使用指南。

SDK 采用模块化设计,每一模块的功能相对独立和完善,用户可以根据自己的需求选择使用下面的模块:

  • EMClient: SDK 的入口,主要完成登录、退出、连接管理等功能。也是获取其他模块的入口。

  • EMChatManager: 管理消息的收发,完成会话管理等功能。

  • EMContactManager: 负责好友的添加删除,黑名单的管理。

  • EMGroupManager: 负责群组的管理,创建、删除群组,管理群组成员等功能。

  • EMChatroomManager: 负责聊天室的管理。

三、集成过程

3.1创建项目

创建项目使用MVC的结构来实现功能。

3.2 在环信中创建应用

前面的依照手册来。主要要注意注册模式。

  • 授权注册:需要通过APP的后台服务器(在服务器中加入一些校验的方法)
  • 开放注册:无需通过APP的后台服务器

3.3 手动复制 jar 包及 so 导入

在下载的 SDK 中,有个 libs 文件夹,libs 文件夹里是 jar 包和 so 文件。

3.4 通过 gradle 远程链接导入

Android SDK 介绍及导入 [IM开发文档]

具体做法:

  1. 修改minSdkVersion 19(看版本要求)
  2. //EaseIMkit
    implementation 'io.hyphenate:ease-im-kit:3.8.5'
    implementation 'io.hyphenate:hyphenate-chat:3.8.5'
  3. 在AndroidManifest.xml中添加依赖和配置
  4. 设置AppKey
  5. 自定义一个Application   //EaseIM初始化
    

Android基于环信实现聊天功能(一)——了解环信相关推荐

  1. Android 基于Zxing的扫码功能实现(二)

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 引言 本篇博文是基于 Android 二维码的扫码功能实现(一) 文章写的,建议阅读这篇文章之前,先看看上篇文章.还有建议阅读本文的 ...

  2. Android基于UDP的局域网聊天通信

    代码地址如下: http://www.demodashi.com/demo/12057.html 记得把这几点描述好咯:代码实现过程 + 项目文件结构截图 + 演示效果 1. 开发环境 1.1 开发工 ...

  3. Android基于TCP的局域网聊天通信

    概述 在同一局域网内,两台设备通过TCP进行通信聊天. 详细 代码下载:http://www.demodashi.com/demo/10567.html 一.准备工作 开发环境 jdk1.8 Ecli ...

  4. android局域网通信方案,Android基于TCP的局域网聊天通信

    一.准备工作 开发环境 jdk1.8 Eclipse Luna Service Release 1 (4.4.1) 运行环境: 华为荣耀6(Android4.4).华为p9(Android7.0) 实 ...

  5. Android基于方向传感器实现指南针功能

    这里做了一个指南针,主要用到了Android里的加速度传感器和地磁传感器 Github源码 1.数据初始化 private USensor(Context context) {if (sorMgr = ...

  6. 机房动环监控系统的功能,动环监控系统的主要功能

    随着企业信息管理水平的不断提高,很多公司也建立了大小计算机房,以确保公司的正常运行.因为机房不同,监控项目很有可能不同,用户更注重灵活.稳定.成本低.操作简单的监控系统. 机房动力环境监测系统,又称动 ...

  7. Android基于环信SDK开发IM即时聊天(一)

    2016-09-02更新:可以看一下最新的这篇文章和源码,Android基于环信SDK开发IM即时聊天(二) 目前市面上我了解的做第三方即时聊天SDK的有两家:环信.融云,这里我使用环信SDK来完成即 ...

  8. Android基于环信SDK开发IM即时聊天(二)

    声明1:北京时间现在是2019/6/10,评论里的问题我看到了,这几天我找时间看看源代码问题出在哪,在此感谢大家的监督 声明2:此Demo我是在5.1测试机上测试通过,感谢WTQ_DOMIAN的评论, ...

  9. 基于环信实现在线聊天功能

    由于最近接触到的项目需要用到聊天功能,关于聊天的SDK跟安卓同事统一,最终选择了环信.在官方下载好SDK,并研究了一波,最终实现自定义聊天功能. ###实现前准备 1.下载环信SDK,我使用的版本是V ...

  10. Android基于环信开发的即时通讯APP

    Android基于环信开发的即时通讯APP,源代码在Github上,GitHub地址为:https://github.com/PowerDos/BLChat ,希望能够帮到你们,下面是系统简介. 简介 ...

最新文章

  1. Python才是世界上最好的语言
  2. node那点事(二) -- Writable streams(可写流)、自定义流
  3. 计算机网络之数据链路层:8、介质访问控制之信道划分介质访问控制
  4. 博弈——Nim博弈(hdu2176,1850,1851,1907,1849)
  5. 中国风海报设计必备的墨染素材!点睛国潮风!
  6. react-native拨打电话和安卓端拨打电话
  7. Colaboratory使用教程
  8. Qt中文件读写进文本框出现乱码问题详解(gbk格式出现乱码为例)
  9. 国家地表水水质自动监测站坐标位置数据(共1946个点位,含断面名称、所在省份、所在城市、经度、纬度、所在河流、所在流域、断面属性、介绍、属地管理)
  10. iOS设备的越狱方法
  11. Oracle的Case When then end的用法
  12. 如何快速有效的发散思维?
  13. 时间序列--残差分析
  14. iOS 自定义转场动画篇
  15. 备战面试日记(3.3) - (设计模式.23种设计模式之结构型模式)
  16. 【VPP】 VPP之DPO
  17. 安卓和苹果上线流程:
  18. 苹果云服务icloud_苹果手机怎么恢复通讯录?一键恢复技巧就在这里!
  19. taishan服务器修改为u盘启动,bios改成u盘启动
  20. 【财富空间】人品,是最好的底牌

热门文章

  1. html5播放器 php,PHP/HTML5页面上的随机声音播放器
  2. 4.蒙特卡洛(Monte-Carlo, MC)+时序差分(Temporal Difference, TD)
  3. 工业无线开关量信号传输器
  4. 编一个程序,将两个字符串连接起来,不要用strcat函数
  5. 安全组-出入战规则设置
  6. 私有云的优缺点_概述实施私有云的优点和缺点
  7. jupyter notebook 更改工作环境和浏览器
  8. Emacs 新闻组 之四 联系人管理
  9. 判断div是否在可视区内
  10. iphone 计算机的shift键在哪,苹果电脑shift是哪个键 苹果电脑shift是什么键