Android腾讯云通信集成记录(快速实现聊天功能)

利用小假期的时间学习了一下怎么使用腾讯云通信,过程中的坑还是比较多,写篇博客记录一下集成过程方便自己以后查看。

先看下效果图:

在这里插入图片描述
首先需要去腾讯云通信的官网去登录,并且创建一个云通信应用。
在这里插入图片描述
免费的就好,腾讯云通信相对于其他品牌免费版的来说,还是非常不错的。
这里会有一个SDKAPPID这个相当于你的标识,后面需要使用。

接着注册几个管理员账号,并且生成账号对应的userSig(登录的时候不需要密码,而是需要去验证userSig),注册流程:
在这里插入图片描述
创建好后需要下载公私钥,第一个坑来了…
你下载好的公私钥应该是这样的:
在这里插入图片描述
用记事本打开:
在这里插入图片描述
坑就在于,第一行和最后一行也是秘钥的一部分!!!!我生成userSig的时候多次是失败 就是只复制中间内容了!
然后全部复制:
在这里插入图片描述

接着去Github上下载腾讯云通信的Demo(因为TUIKit4.x之后不支持直接在gradle中导入了,必须去下载源码通过Module或者arr包的方式去引入,这点也是我绕坑时间比较长的)
Github地址:TIMSDK

下载下来可以根据文档先跑通去看一下他的源码,采用的mvp模式,所以看其中的逻辑还是比较容易的。跑通这个Demo比较简单,就不记录了,根据文档很简单。

文档地址:一分钟跑通Demo

下载好源码后接着创建一个空项目
引入imsdk,在app.gradle中加入如下配置:

api 'com.tencent.imsdk:imsdk:4.2.10'

并且在defaultConfig中添加以下配置:

ndk {abiFilters "armeabi-v7a"}

到这里,imsdk就导入成功,这里坑还是比较少,主要是下面的TUIKit集成。

打开刚刚下载的源码,编译没问题后,在你的项目中引入tuikit(import module):
在这里插入图片描述
在这里插入图片描述
导入成功后,你的项目中会出现tuikit,打开它目录下的gradle,修改里面的sdk版本等,修改为和自己项目一样的版本号:
在这里插入图片描述
在app.gradle中添加以下代码:

implementation project(path: ':tuikit')

编译一下,没有问题的话直接新建个类,继承Application,重写onCreate方法,在onCreate中初始化TUIKit:

public class App extends Application {@Overridepublic void onCreate() {super.onCreate();//SDKAPPID 就是文章开头提到过的,在控制台上可以看TUIKit.init(getApplicationContext(),你的SDKAPPID,BaseUIKitConfigs.getDefaultConfigs());}
}

到这里并没有结束,简单写个登录界面,去实现一下最简单的登录操作。
xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical"tools:context=".MainActivity"><EditTextandroid:id="@+id/et_username"android:layout_width="match_parent"android:layout_height="40dp"/><Buttonandroid:id="@+id/bn_login"android:layout_width="match_parent"android:layout_height="40dp"android:text="登录"/></LinearLayout>

对应的activity代码:

public class MainActivity extends BaseActivity {static String TAG = "MainActivity";String userSig = "登录的账号对应的userSig":Button bnLogin;EditText etUsername;@Overridepublic int initLayout() {return R.layout.activity_main;}@Overridepublic void initView() {etUsername = findViewById(R.id.et_username);bnLogin = findViewById(R.id.bn_login);bnLogin.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String username = etUsername.getText().toString();login(username,userSig);}});}@Overridepublic void initData() {}public void login(String identifier,String userSig){// identifier为用户名,userSig 为用户登录凭证TIMManager.getInstance().login(identifier, userSig, new TIMCallBack() {@Overridepublic void onError(int code, String desc) {//错误码 code 和错误描述 desc,可用于定位请求失败原因//错误码 code 列表请参见错误码表Log.e(TAG, "login failed. code: " + code + " errmsg: " + desc);}@Overridepublic void onSuccess() {Log.e(TAG, "login succ");}});}public void loginOut(){//登出TIMManager.getInstance().logout(new TIMCallBack() {@Overridepublic void onError(int code, String desc) {//错误码 code 和错误描述 desc,可用于定位请求失败原因//错误码 code 列表请参见错误码表Log.d(TAG, "logout failed. code: " + code + " errmsg: " + desc);}@Overridepublic void onSuccess() {//登出成功}});}/*** 在收到服务器颁发的 userSig 后,调用IMSDK的 login 接口* userId 用户账号* userSig 您服务器给这个用户账号颁发的 IMSDk 鉴权认证*/private void onRecvUserSig(String userId,String userSig) {TUIKit.login(userId, userSig, new IUIKitCallBack() {@Overridepublic void onSuccess(Object data) {/*** IM 登录成功后的回调操作,一般为跳转到应用的主页(这里的主页内容为下面章节的会话列表)*/Log.e("imlogin success","登录成功");Intent intent = new Intent(MainActivity.this, TalkActivity.class);startActivity(intent);}@Overridepublic void onError(String module, int errCode, String errMsg) {Log.e("imlogin fail", errMsg);}});}
}

此时,你的界面只有一个文本框和登录按钮,单击登录看下日志,会打印是否成功。如果显示登录成功,那离这个Demo结束不远了。

腾讯云通信给我们提供了相当傻瓜式的用法,具体也可以看文档中TUIKit集成部分
复制源码中的以下内容:
在这里插入图片描述 在这里插入图片描述
对应的导下包,修复一下基本错误,就可以运行使用,别忘了修改你之前登录界面 登录成功后的逻辑,登录成功后跳转到对应的界面。

登录的账号就是你的管理员账号,可以创建多个。
聊天对象, 也是通过搜索管理员账号去发消息,单击加号,发起对话,输入你另外的管理员账号即可。
在这里插入图片描述
在这里插入图片描述

快速实现聊天功能,到这里就结束了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/46622.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术干货 | 网易云信大规模聊天室系统架构解析

导读&#xff1a;聊天室是一类非常重要的 IM 系统&#xff0c;不同于单聊和群聊&#xff0c;聊天室是一种大规模的实时消息分发系统。本文我们来详细介绍一下网易云信大规模聊天室系统的具体架构以及实践应用案例。 文&#xff5c;曹佳俊 网易云信资深服务端开发工程师 聊天室有…

2022倒带-NutUI

前言 时光飞逝&#xff0c;流年似水&#xff0c;让我们倒带 2022&#xff0c;回首这跌宕起伏一年走过的 “升级之路”。 NutUI 表现如何&#xff1f; 成绩单等着您打分&#xff01; 2022 是 NutUI 在技术长廊中探索和成长的第四个年头&#xff0c;悄然度过了自己的“孩提“时…

chatgpt赋能python:Python量化开发:实现金融市场的策略化投资

Python量化开发&#xff1a;实现金融市场的策略化投资 随着金融市场竞争的日益激烈&#xff0c;传统的以人工分析及定量研究为主的投资方法已经无法满足投资者的需求。因此&#xff0c;数字化投资逐渐成为趋势&#xff0c;采用量化投资来实现金融市场的策略化投资已经成为了投…

英语基础:四级431、六级没过,考研英语78分经验分享 (23考研)

前言 博主备考时的英语基础&#xff1a;英语四级431分, 六级没过 研究生英语二分数&#xff1a;78分 ps&#xff1a;也许这个分数段不是一些大佬的目标分数 (80)&#xff0c;本篇文章的目的只是帮助一些英语基础差的同学&#xff0c;提供一些备考经验。 一、基础阶段 时间&…

考研复试_英语面试_必备的30个问题

前言&#xff1a; 本人英语口语处于那种的“哑巴式”&#xff0c;没有准备就根本不知道扯啥。于是整理了一些出现频率最高的英语问题&#xff08;回答对我而言两三句简单句就撑死了&#xff0c;因没有参考价值大家就还是自己准备回答&#xff09;&#xff0c;以防到时候陷入迷之…

国外问卷调查有哪几种类型?

大家好&#xff0c;我是小飞匠&#xff0c;今天来聊聊国外问卷调查分为哪几种&#xff1f;新手适合做哪种&#xff1f;国外问卷调查项目最近一直很火&#xff0c;咨询的人也比较多。因为国外问卷调查其实分为很多种类。通过不同的展现方式、付款方式&#xff0c;我们称为不同的…

什么是海外调查问卷?都有哪些形式

国内外有很多正规的公司都是做这个行业的。为什么会有这么多公司在做这个行业&#xff1f;主要是由于市场上问卷调查需求较多决定的&#xff0c;很多商家在进行新产品研发前的需求以及产品销售后的一些满意度征集时&#xff0c;往往会通过这种问卷调查公司收集特定人群的意见与…

国外问卷调查好做吗?为大家分享干货!

随着5G的出现&#xff0c;2021可谓是真正的进入到了互联网时代。互联网时代的出现更大的为人们提供了更多的机会&#xff0c;让人们的工作以及生活都得到了更大的便利。也使人们的创业的机会变得更多了起来。 在互联网的背景下&#xff0c;足不出户的进行互联网的创业的人们多了…

开源的问卷调查系统

一、项目简介 今天推荐一款基于 JAVA WEB 的开源问卷表单系统。 二、实现功能 支持创建问卷 支持设计问卷 支持基础题型 支持收集卷子 支持默认统计 支持原始答卷 三、技术选型 后台开发&#xff1a;Java、SpringBoot【企业版】&#xff0c;Struts2【开源版】 前端开…

海外调查问卷中的站点查

国内外很多正规公司都在从事这个行业。为什么有这么多公司在做这个行业&#xff1f;主要是由于市场上对问卷调查的需求量很大。很多商家在收集新产品研发前的需求和产品销售后的一些满意度时&#xff0c;往往会通过这种问卷调查公司来收集特定人群的意见和想法。这些问卷调查公…

微信端问卷调查

上周&#xff0c;股份公司突然需要问卷调查功能&#xff0c;要的很着急。和一同事用了大约两天时间&#xff0c;将该功能完成。 项目情况是&#xff1a;要求在PC、微信端可以填写内容&#xff1b;微信端根据二维码打开问卷页面。 UI框架&#xff1a; bootstrap 效果如下&…

微信小程序-调查问卷

调查问卷 搭建本地服务器新建小程序注意 搭建本地服务器 使用node.js&#xff08;要安装node.js&#xff09;搭建本地HTTP服务器&#xff0c;在小程序所在目录创建web目录 &#xff0c;并在web目录下打开CMD&#xff0c;初始化项目 npm init -y然后安装express框架 npm inst…

在当前就业形势下,如何提高应届生在职场中的竞争力,让ChatGPT帮你解答

在当前就业形势下&#xff0c;应届生要提高自身的竞争力&#xff0c;可以从以下几个方面入手&#xff1a; 学习技能&#xff1a;不断学习提升自身专业和技能水平&#xff0c;获取行业认证证书&#xff0c;参加培训课程。 实习和项目实践&#xff1a;通过实践课程&#xff0c;公…

泰裤辣!ChatGPT帮你制定个人发展计划,助力你实现职场腾飞……

作为一名职场人&#xff0c;你是否曾经感到自己的职业生涯缺乏方向和规划&#xff1f; 是否曾经为了应对工作中的挑战而感到力不从心&#xff1f; 如果你的答案是肯定的&#xff0c;那么认真制定自己的个人发展计划&#xff0c;为自己的职业生涯打下坚实的基础就是你必须要做…

ChatGPT-看一看你还有多久失业

需求&#xff1a;将下列表格中的数据导入mysql数据库并且可以将mysql数据库上的数据导出到excel&#xff0c;如果让你做需要多久时间 第1次询问ChatGPT&#xff1a;一个excel内部有多个sheet&#xff0c;每个sheet的表头都是章节号、测试项、测试子项、用例名称、用例表示、测试…

【CCNA | 网络模拟器CPT系列】Cisco Packet Tracer 8.2.0 的安装 Ⅰ

目录 1. 下载 Cisco Packet Tracer2. 安装 Cisco Packet Tracer&#xff08;1&#xff09;许可协议界面&#xff08;2&#xff09;选择安装目录&#xff08;3&#xff09;选择开始菜单文件夹&#xff08;4&#xff09;选择附加任务&#xff08;5&#xff09;确认设置选择&#…

无线POE交换机突然离线导致AP下用户无法上网

环境&#xff1a; 华为S1730S-S 锐捷 NBS3100-24GT4SF 问题描述&#xff1a; 无线POE交换机突然离线导致AP下用户无法上网 交换机各个指示灯都正常&#xff0c;现在有无线信号 连接上获取不到ip 本地远程管理地址也访问不了 解决方案&#xff1a; 1.电脑直连这个交换机…

Cisco Packet Tracer应用登入后还是不能运行的问题

问题出现的可能性 版本低&#xff0c;达不到要求&#xff1b;建议下载最新版本试一 试&#xff0c;以下是8.2.1版&#xff08;在官网登入后资料中下载->如图1&#xff09;登入时注意选择China->如图2&#xff0c;登入后就可以使用->如图3 图1 图2 图3

Python 自动化办公应用大全(ChatGPT 版)

以下内容来自公众号逆锋起笔&#xff0c;关注每日干货及时送达 你被降维打击过吗&#xff1f; 在刘慈欣的科幻小说《三体》中&#xff0c;高级文明掌握了一种维度武器&#xff0c;可以将攻击目标所处的空间维度降低&#xff0c;使其无法生存。 二向箔飞出&#xff0c;整个太阳系…

人工智能学术顶会——NeurIPS 2022 议题(网络安全方向)清单、摘要与总结

按语&#xff1a;随着大模型的崛起&#xff0c;将AI再次推向一个高峰&#xff0c;受到的关注也越来越大。在网络安全领域&#xff0c;除4大安全顶会外&#xff0c;一些涉及AI的安全话题&#xff0c;包括对AI的攻防研究&#xff0c;以及应用AI做安全的研究方向&#xff0c;也会发…