Android集成腾讯云IM(上篇)

        最近,项目涉及到集成腾讯云IM,深受其害!故特记以此篇,望对各位看客能有所帮助!

        关于腾讯云集成,我打算分上中下三篇文章来分析;TIM踩坑记上篇,介绍腾讯云IM的集成和实现;TIM踩坑记中篇,针对腾讯云IM的实现代码,基本逻辑等源码进行分析;TIM踩坑记下篇,对于此次集成过程中碰到的一些问题进行汇总;

        demo中是将云通信需要的一些逻辑代码、sdk等分别封装到ui,sdk,presentation和tslibrary四个module中;考虑到其中有很多是不需要的,为了方便代码的管理,以及缩小项目apk大小,当然也为了避免引入四个module编译出现的一系列问题,我将module中需要的代码以及可能需要的代码模块导入了进来,然后进行修改。

于是先给大家看看项目效果

会话列表
对话页面——提供发送语音,图片,拍照功能
对话页面——提供发送表情

集成步骤具体如下:

注:本文仅以截图示意为主,具体资源,仍需以云通信文档以及demo为主!望见谅!!!

第一步:在腾讯云通信IM上注册应用,获取SDKAPPID;

第二步:下载ImSdk,导入相关的so库和依赖包;(关于这个so库碰到的问题,将在下篇进行讲解;)

导入so库和依赖包到libs目录下


引入so库
导入所需要的jar包,大家可以根据自己的需求,进行选择

第三步:添加相关权限

权限说明

第四步:声明相关服务及广播接收器

云通信相关的服务及广播接收器

第五步:添加混淆规则(如果你的项目之前有混淆规则的话,必须添加!不然打包的时候会报错,各种文件找不到等等;)

#------------------腾讯云通信----------------------------------

-keepclass com.tencent.**{*;}

-dontwarncom.tencent.**

-keepclass tencent.**{*;}

-dontwarntencent.**

-keepclass qalsdk.**{*;}

-dontwarnqalsdk.**

第六步:终于到正题了;好嘛!开始写代码;哦,不,是导代码;首先,(一些资源文件可以先导进来)和集成其他sdk一样,初始化imsdk;

初始化timsdk

初始化imsdk之后,仍需初始化用户配置(必须得配置,并且得在登录之前进行配置----划重点啦!!!),最初我是在messageFragment中初始化过一次,天真的我原以为,只需在初始化之后再次登录即可;后来才发现,这样可能会导致一些问题;下篇将进行详细解析!

初始化用户配置

第七步:初始化完了,那当然得开始搞事情啦!将demo里的有用部分拉过来:主要包括event(实现被观察者模式的几个类)、imadapter(回话列表适配器、聊天列表适配器)、imbeans(封装的一些实体类,比较重要的就是消息的几种类型,中篇会进行详细的解析,主要针对自定义消息。腾讯云IM文档虽然写的不怎么样,但是基本的消息发送还是没问题的。所以大家主要关注下自定义消息即可)、imcontroller(消息相关的activity和fragment)、imutil(一些工具类,可以筛选优化)、imwidgets(一些腾讯云封装好的自定义控件)、presenter(ChatPresenter----聊天页面逻辑,conversationPresenter------回话列表页面逻辑)、viewfeatures(接口);

云通信im文件目录

接下来就是删除和修改一些没必要的;这就需要大家根据自己需求来修改。我就不一一贴出来了。

第八步:登录

准确的讲登录是得服务器实现的,毕竟需要将我们app的账号直接使用;所以需要后台提供一个根据token或者uid之类的值来获取用户、客服,或者卖家的identity和usersig,然后,使用sharedpreferences来存储这些信息,再进行登录;大致思路是这样的,其他细节,大家可以见仁见智,自由发挥;

哦!还有一个那啥,,,需要实现离线推送的话,需要特别处理小米和华为手机(由于小米和华为ROM深度定制了安卓系统,加强了权限的控制,第三方APP默认不会在系统的自启动白名单里,APP在后台很容易被系统杀掉,或者用户手动将APP杀死, 因为没有自启动权限,APP的service无法自动重启,从而导致被杀死后无法收到消息。为了保证APP被杀后,在小米设备和华为上仍然能够收消息,可以集成小米和华为推送);具体实现步骤如下:

             1、分别在小米和华为开发者平台中启用推送服务,获取appkey等参数;这里不细说,可以查阅im文档;

             2、在云通信IM的个人中心中,添加证书,获取推送证书id,并记录小米推送的appid和appkey;

            3、分别创建一个HwPushMessageReceiver和MiPushMessageReceiver;

            4、注册推送服务

在初始化imsdk时候,注册华为和小米离线推送

        5、接下来就是清单文件中注册服务和广播接收器;

        6、添加混淆规则

#------------------小米推送----------------------------------

-keepclass com.sinosoft.nanniwan.im.imutil.MiPushMessageReceiver {*;}

-dontwarncom.xiaomi.push.**

#------------------华为推送----------------------------------

-keepclass com.huawei.android.**{*;}

-dontwarncom.huawei.android.**

-keepclass com.baidu.mapapi.**{*;}

-dontwarncom.baidu.mapapi.**

        详细见云通信im文档;(云通信文档中的华为的混淆规则,中间有空格,还请大家仔细!莫被坑!!!)

        以上,基本上就实现了云通信IM的集成;当然,有很多细节,本文没能讲述,需要大家自行揣度!关于云通信的一些拓展和排坑,将在接下来两篇文章中讲解!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,466评论 25 707
  • 本篇文章会就集成腾讯云IM碰到的部分问题进行汇总,问题如下: 问题1:方法数超过63500? 1、在build.g...
    AlexYoD阅读 2,533评论 1 3
  • 今天单位请百家讲坛纪连海老师来讲大秦帝国兴衰启示录,一听是纪老师来,很多退休员工都慕名前来,小小的会议室座无虚席,...
    阿_方阅读 163评论 0 0
  • 男人爱女人是用脑,女人爱男人是用心。接下来让我们用脑来做一件事! 数据大屏项目心得: 做产品 5-6 年,陆陆续续...
    houhuamin阅读 2,700评论 5 9
  • 老王的家坐落在贫困小县的一隅。 老王早上听着鸡打鸣起床,晚上在邻里的吵闹声中睡着。她家门口就是一大片田地,风吹着杨...
    凤凉阅读 494评论 4 16