环信android sdk接入的过程

环信Android客户端集成文档 环信Android客户端集成文档一、Android SDK简介 环信SDK为用户开发IM相关的应用提供的一套完善的开发框架。 包括以下几个部分:SDK_Core为核心的消息同步协议实现,完成与服务器之间的信息交换。 SDK是基于核心协议实现的完整的IM功能,实现了不同类型消息的收发、会话管理、群组、好友、聊天室等功能。 EaseUI是一组IM相关的UI控件,旨在帮助开发者快速集成环信SDK 阅读详情

         最近项目中要用到群聊的功能,了解过后最终用了环信来实现此功能,下面来说具体的集成步骤;

         第一步:首先至环信官网,<a href="http://www.easemob.com/product/cs?utm_source=baidu-pp">注册后创建应用获取appKey,在申请key的过程中,发现它不像其他的第三方一样需要用到应用的唯一标识包名,所以这个key并不是和应用绑定的,别人拿去也可以直接用,当然也没有人会泄漏自己的appkey吧大笑。

         第二步:集成的选择,现在环信android的sdk已经到3.2.1了,因为是初次集成所以直接就用了最新版本,问了他们的客服技术人员,也推荐用最新稳定版。他们有两种集成方式一种是只是用sdk,优点是自定义性强。缺点是自己要写大量ui界面,毕竟ui界面还是蛮多的呀。另外一种方式是他们有一个EaseUI库,可以进行依赖,然后就可以直接用人家的页面了,优点是减少了工作量,但是这个库代码也是蛮多的,依赖的东西也不少,有很多可能自己也用不到很不灵活。因为我的工期也是比较紧,所以我采用了“第三种”方法偷笑。其实,就是将自己需要用的ui界面先暂时复制到自己的项目里面(先让产品同学看到效果吧)。然后再根据ui设计师的要求,进行ui优化。算是折中的方法吧。

        第三步:一些配置。首先是jar和so文件。因为我只是做了群聊,所以不需要实时语音和实时视频所以选择

如图选中的部分下面的jar和so,直接按照目录导入就好了;实质上我只导入了如下图选中的部分的so


具体原因后文会讲到。AndroidManifest中的配置如下:

<!-- *******************环信所需********************** -->
    <meta-data android:name="EASEMOB_APPKEY"  android:value="自己申请的key" />
    <!-- 声明SDK所需的service SDK核心功能-->
    <service android:name="com.hyphenate.chat.EMChatService" android:exported="true"/>
    <!-- 声明SDK所需的receiver -->
    <receiver android:name="com.hyphenate.chat.EMMonitorReceiver">
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_REMOVED"/>
            <data android:scheme="package"/>
        </intent-filter>
        <!-- 可选filter -->
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
            <action android:name="android.intent.action.USER_PRESENT" />
        </intent-filter>
    </receiver>
 当然还会有一些权限,例如录音,摄像等权限了。

         第四步,就是正常的代码书写。其实一开始我是直接把我所需的ui代码拷贝过来了,甚至是原封不动。是想要先看到效果;

         第五步:因为我做的是群聊,并且应用的一个模块就是群聊,所以环信的注册以及群的创建都是由服务端来完成了。所以客户端做的就是环信登录,以及退出登录;登录调用的是

EMClient.getInstance().login(name, pwd, new EMCallBack() {

    @Override
    public void onSuccess() {
         //这个是成功的回调,该方法回调后,我进入了聊天页面
    }

    @Override
    public void onProgress(int progress, String status) {
        // EMError 错误码都在这个类里面
    }

    @Override
    public void onError(final int code, final String message) {
        
    }
});

我进入群聊页面时候,服务端就会给我一个群id,我好知道当前用户所在的群,以进行聊天;至此聊天功能初步完成;

       接下来说遇到的几个问题,以及解决的过程。

       问题一:服务端给了群id,客户端会根据id获取群信息的,环信提供了两个方法


其实第一个方法是从本地数据库获取群信息,第二个才是从服务器获取最新的群组信息;我遇到的问题是刚开始一直是用第一个方法getGroup来获取群组信息的,就会出现第一个用户退出后,第二个用户,再次登录找不到群组的情况,其实也不难理解,我们退出登录时候本地数据库中数据并未清除,另外又没有调用getGroupFromServer从远程获取,所以自然会存在根据新的id获取不到群组的情况;那好,然后我每次在进入页面之前,先调用getGroupFromServer方法同步数据(问了环信的客服技术人员,人家说这个方法是可以将数据同步至本地数据库的),无奈,调用这个方法后,有时候调用getGroup仍然是无法获取到群组信息。可能是我调用姿势不对?最后为了稳妥,我就一直用了第二个方法(注意其需要运行在子线程中)。

          问题二:进入群详情页面时候,会展示群里面的成员信息。用的是GridView了,但是总会出现重复的情况,Item名字用的是用户类EaseUser的nick属性值。刚开始一直以为是gridview用的不对,可是感觉不应该呀,用了有两年了,不该有问题。最后看了下数据,原来环信服务器返回的数据有问题,,,,好吧,数据是不能相信的。原因在于传给的adapter的List<EaseUser>中的EaseUser的nick值总是相同的,所以就导致了列表重复;但是他们的userName是不重复的,所以最终就

List<EaseUser> userList = new ArrayList<>();
for (String username : members) {
    EaseUser user = new EaseUser(username);
    user.setNickname(username);
    userList.add(user);
}


这样写了,将nick和username值搞成一样的。然后就不重复了。

         最后说说上面我导入so时候为啥只用了那一个文件夹;因为我的应用还用了百度地图,其中有定位、导航(包括语音)、地图展示的功能,可能用过这些综合功能的朋友知道,如果根据功能块从百度官网分别下载,最终会报so找不到的错误,所以只能组合下载,但是组合下载后,百度就会只给这一个armeabi文件夹下面的so。如果我在用环信时候,导入支持不同种类的cpu类型的so的话,在那些cpu类型为非armeabi的手机上。百度地图就会启动报错,报找不到so的错误;所以综合之后,就只用了一个文件夹,也是无奈之举;如果有哪位朋友遇到相同问题,烦请告知;

         这是写的第一篇博客,以前也有想过写,可出于各种原因,都没写,最重要是没有尝试。写的有点乱。但是要勇于尝试,just do it!奋斗 

         如有错误,欢迎指正,先行谢过大笑



环信ONE SDK架构介绍 环信即时通讯SDK自2014年6月正式发布2.0版本至今已走过一个年头,从基本的单聊功能,到群聊功能,再到聊天室的实现,SDK不管是功能,稳定性,还是易集成性都在一步一步的走向完善与稳定,感谢开发者们给与提供的反馈与帮助,使我们的SDK迅速的在诸多方面得到提高与改进。 随着现在物联网的兴起,环信现在的SDK的架构对应对未来物联网平台还是略有不足,使我们不得不在今年年初就考虑到如何去改善我们的架构, 阅读详情

相关推荐

5分钟集成即时通讯功能——环信Android版

下载环信demo (Android) 什么是环信demo 环信demo展示了怎样使用环信SDK快速创建一个完整的类微信聊天APP。展示的功能包括:环信SDK初始化,登录,登出,注册消息接收listener, 发送消息。 环信demo源代码已在github上开源供开发者下载,以帮助开发者更好的学习了解环信SDK。 下载环信sdk及demo 到环信官网下载

easemob_IM的专栏 1万+

手把手教你集成环信ReactNative离线推送

在当前工程中新建一个类 PushMessageReceiverImpl(自定义类名)继承OpenClientPushMessageReceiver 并重载实现相关方法。

huan132456765的博客 667

Unity接入科大讯飞SDK-安卓篇

最近需要接入sdk,现把接入科大讯飞SDK安卓端的过程整理如下: 接入SDK分成两个大的部分:安卓端 和 Unity端 安卓端主要负责导入科大讯飞的sdk,并编写相关脚本,最后生成aar包,提供给Unity使用 Unity端则根据导出的aar包调用相关方法实现科大语音的功能 本文使用的工具是:Android Studio, Unity2018.4.1f1 一、安卓端: 1.打开Android Studio,新建项目: 设置项目名称和sdk: PS:本项目中使用的Android S

啸风轩 4330

环信最新SDK 3.4.0.1 配置实现,华为的离线推送。

下面是环信的关于华为推送的文档SDK3.4.0.1华为推送重大更新为了方便用户自己升级华为推送相关sdk,环信 SDK 在3.4.0.1之后的版本中将华为推送相关从 IM SDK 中移除,同时提供对应的上传推送token接口供开发者调用,以后的版本就需要开发者自己去集成华为推送相关功能,然后调用下边的方法将 token 发送到环信服务器:EMClient.getInstance().sendHMS...

maoxian007的专栏 1987

android 集成环信SDK

集成步骤: 1. 首先在你的项目根目录build.gradle文件的allprojects→repositories属性下加入远程库地址 allprojects { repositories { google() jcenter() maven { url 'https://jitpack.io' } maven { url 'http://developer.huawei.com/repo'} //如果需要

liuye066的专栏 505

基于环信SDK的Android微信V2应用集成开发实战

随着移动互联网的快速发展,即时通讯(IM)已成为现代应用不可或缺的核心功能之一。从早期的短信通信到如今的实时音视频交互,IM技术不断演进,广泛应用于社交、办公、客服等多个领域。环信SDK作为国内成熟的即时通讯云服务解决方案,凭借其高可用性、低延迟和丰富的功能接口,在Android平台上展现出显著优势。本项目基于WechatV2App.zip进行二次开发,旨在构建一个功能完整、架构清晰的即时通讯应用原型。

weixin_32102617的博客 857

IM实战:Android接入环信 IM SDK

为开发者提供基于移动互联网的即时通讯能力,如单聊、群聊、发语音、发图片、发位置等,让开发者摆脱繁重的移动IM通讯底层开发,24小时即可让App拥有内置IM能力。相信以各位小伙伴的能力接着的优化完全不是问题,当然也说不定有些奇葩问题搞不定,建议可以去环信官网联系官方技术支持,快速帮你解决遇到的问题~~实现了个人与个人,群组,聊天室发消息,发语音,发图片,发位置等功能,提供了一套供开发者拿来即用的EaseIMKit的ui库;chatType——聊天类型,整型,分别为单聊(1)、群聊(2)和聊天室(3);

huan132456765的博客 2593

Android-uni-app接入android原生环信客服

uni-app接入android原生环信客服,支持文字、语音、表情、拍照、图片、视频、文件,进入客服页面时可设置访客信息、发送订单或者轨迹消息,基于环信客服访客端demo集成。

环信集成SDK

环信SDK集成登录注册

qq_34178710的博客 837

集成环信3.0Android及时通讯

本次demo只是简单的实现了登录环信服务器注册账户和简单的可以点对点的文字聊天,写的不好忘见谅

(04730)半导体器件之基本放大器工作原理(一)

放大器是构成各种电子线路的基本单元电路。所谓“放大”,就是将输入的微弱信号(微弱变化的电压或电流等)去控制直流电源提供的能量,并使输出按照输入的小信号变化规律而变化的过程。所以放大器的本质是能量转换器。本节重点学习基本放大电路的工作原理和基本分析方法及主要性能指标。

黄先生的博客 3005

Android 及时通信(环信)

Android集成环信即时通信下载SDK新建工程导入SDK添加权限和配置初始化基础功能注册登录 如果自己来写一个类似微信的音视频聊天软件虽然能实现功能,但是实现过程还是比较麻烦,周期也比较长,可能最后出来漏洞也比较多,直接引入第三方的就省事很多,本文简单描述一下将环信SDK继承在Android应用中。 下载SDK 进入到官网: 下载完成后解压出来有如下文件夹: doc:SDK 相关 API 文档 examples:ChatDemoUI3.0(Demo,依赖 EaseUI 库)、EaseUI libs

会飞的蜗牛 2175

Docker网络冲突?手把手教你解决Dify社区版无法访问172.18.0.0网段的问题

本文详细解析了在部署Dify社区版时,因Docker默认网段与局域网冲突导致无法访问172.18.0.0网段的问题。通过剖析Docker网络原理,提供了修改Docker守护进程默认地址池的根治方案,并介绍了在Compose文件中指定自定义网络等备选方法,帮助用户彻底解决网络冲突,保障服务稳定运行。

p8q9r0的博客 484

Android Studio最新版环信SDK完美集成实例

Android Studio最新版环信SDK完美集成实例 tags:环信集成 1 前言 最近看到有人在找android集成环信SDK的问题,我将最新版的环信SDK和最新的android进行了集成,最多的总是因为尽管最新的easeui还是采用的V4包。而现在新版的Androi Studio新版已经不在使用V4,V7这些包,统一采用了一个叫作 'androidx.appcompat:appcompat...

weixin_44880903的博客 3153

Python的单元测试之unittest

是一个功能类似 unittest 的库,它集合众家标准测试库之所长,和 unittest 相比,功能更为强大,使用更为简单,OpenStack 广泛的利用它编写单元测试。unittest 提供了自动匹配发现并执行测试用例的功能,随着项目代码结构越发庞大,势必有多个测试文件,自动匹配发现并测试用例的功能在此就显得非常有用,只要满足。unittest 提供了丰富的命令行入口,可以根据需要执行某些特定的用例。的测试用例都会被 unittest 发现并执行,测试用例文件的默认匹配规则为 test*.py。

1、测试博主技术知识分享 2、pos行业知识技术分享 3、java后端技术知识分享 4、嵌入式技术知识分享 5、运维部署相关知识分享 281

Python进阶005:修改Jupyter Notebook的工作路径

1、Jupyter Notebook简介 2、修改Jupyter Notebook的工作路径 如下三个步骤: 一、安装notebook 在CMD命令行中输入: pip install notebook 二、启动notebook jupyter notebook 启动后发现是在你的用户目录下,如下图所示,但是该目录下有很多的其他文件或文件夹,因此我想把这个环境切换到我单门创建的一个文件夹中。 三、创建notebook的配置文件 在CMD命令行中执行: jupyter notebook --genera

若北辰 1384

环信sdk android 聊天,Android基于环信SDK开发IM即时聊天

根据用户移动地图的位置,显示在视野范围内的建筑物,简单的思路是,添加地图监听,当地图移动结束之后,计算出当前屏幕四个角的GeoPoint,根据这4个点,通过mys目前市面上我了解的做第三方即时聊天SDK的有两家:环信、融云,这里我使用环信SDK来完成即时聊天的初步开发工作。下面先奉上1张效果图:1、开发准备首先要到环信官网注册开发者账号,目前只有企业账号注册,不过反正也不会去审核企业信息的正确与否...

weixin_30340301的博客 1071

Ubuntu零基础入门到精通【1.1讲】:什么是 Ubuntu?一文带你彻底搞懂!

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 5719

Unity接入Android SDK

1.接入准备(如果不具备这些条件,建议放弃) 2.导入unity class 3.Android调用unity 4.unity调用Android 5.查看 AndroidManifest.xml package 非静态方法调用 静态方法调用 6.Java回调 unity 接入第三方SDK 很常见的事情,有的SDK 有官方文档,跟着文档接入即可(比如各大广告SDK),但是有写SDK没有提供unity的接入文档,提供的是Android 的接入文档,所有的接口都是面向Java的,SDK的安装也是Android S

euphorias的博客 9452

华为数通方向HCIP-DataCom H12-831题库(多选题:121-140)

华为数通HCIP H12-831多选题

didiplus 1291

【软件系统架构】系列十一:面向对象技术—sysML

摘要: SysML(系统建模语言)是UML的扩展,专为复杂系统工程设计,支持硬件、软件、人员等跨领域建模。其核心包括9种图:4种结构图(如块定义图BDD、内部块图IBD)、4种行为图(如活动图AD、序列图SD)和需求图(REQ),覆盖需求、结构、行为及参数约束。相比UML(面向软件),SysML精简图表(9 vs 13),强化需求追踪与性能分析(如参数图PD),并支持MBSE(基于模型的系统工程)。需求关系(如满足、验证、派生)在需求图中明确关联设计实现,形成闭环管理。SysML是UML的子集与系统工程扩展

moton2017的博客 1905

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

本系列知识点来自于:b站尚硅谷Android通信实战。 一、环信集成概述 环信和用户体系的集成主要发生在2个地方,服务器端集成和客户端集成。 1.1发送消息过程 客户端通过环信服务器进行消息发送。如下图所示: 在线状态:客户端A发送消息到环信服务器,环信服务器推送消息到客户端B。 离线状态:客户端A发送消息到环信服务器,环信服务器检测到客户端B不在线,会添加到离线缓存中,当客户端B登录后服务器会把离线消息推送给客户端B。 1.2聊天记录保存 ...

indeedes的博客 3248

yolov8涨点系列之Concat模块改进

yolov8涨点系列之Concat模块改进

zhang1379的博客 2950

集成环信单聊SDK

最新Android集成环信步骤详解 标签: 最新Android集成环信步骤详解android植入环信android即时通信环信使用方法环信怎么使用 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[+] 前一阵时间一直以为环信不能被个人用户注册,结果现在想试试结果真的注册进来了,各种打脸。今天趁着晚上有时间把环信继

it_yangkun的博客 1366

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Android基于环信SDK开发IM即时聊天

版权声明:本文为博主原创文章,转载请注明出处。 目录(?)[+] 目前市面上我了解的做第三方即时聊天SDK的有两家:环信、融云,这里我使用环信SDK来完成即时聊天的初步开发工作。  下面先奉上1张效果图:  1、开发准备 首先要到环信官网注册开发者账号,目前只有企业账号注册,不过反正也不会去审核企业信息的正确与否,所以随便填写个自己喜欢的ID就

阳光灿烂的日子的博客 4412

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

unity游戏接入安卓SDK

1. unity游戏需要接入安卓sdk的话,建议是把unity项目导出安卓工程,然后把安卓工程再导入进AndroidStudio(安卓开发工具)里,原因是安卓的应用商店SDK非常多,大的小的加起来有几十家SDK,而这些SDK的文档全是安卓的。如果游戏项目很大,可以选择这LZ4,导出时会压缩工程,我这个就非常大,压缩完了还有2G,然后Export导出,导出后就得到一个安卓工程啦。8.3 如果需要游戏传入参数比较多,比如支付,可以把参数封装的Json里,转换为字符串,然后传递过来再解析。

天神哥哥的博客 3627

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

下一篇: 七牛云文件上传
和小胖
博客等级 码龄12年 8粉丝 42原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值