融云 SDK 集成详解 – Android Studio
一 、下载 SDK
您可以到融云官方网站下载融云 SDK。融云 SDK 各部分功能以插件化的形式独立提供,开发者可以根据自己的需要,自由组合下载。各组件的功能如下:
IMKit – 融云 IM 界面组件
IMLib – 融云 IM 通讯能力库
CallKit – 融云音视频界面组件
CallLib – 融云音视频核心组件
LocationLib – 融云位置相关库
PushLib – 融云第三方推送库
RedPacket – 融云红包相关组件
二、以 Module 形式导入各组件
1、打开你的工程, File -> New -> Import Module
打开你从官网下载的融云 SDK,选择 IMKit 。如图:
根据你的需要,以同样的步骤导入SDK里的其它组件: IMLib, CallKit, CallLib, RedPacket。
2、打开应用的 build.gradle,在 dependencies 中添加 compile project(‘:IMKit’)。如图:
3、将 LocationLib 和 PushLib 里的 jar 包拷贝到你应用的 libs 目录下(如果不需要位置功能和小米推送,可跳过此步骤)。
4、打开 IMLib Module 的 AndroidManifest.xml 文件,把 meta-data RONG_CLOUD_APP_KEY 的值修改为你自己的 key,并将 AndroidManifest 中所有 host 改为你依赖项目的包名(此处指 app Module 的包名)。如图:
三、初始化 SDK
在 application 中调用 RongIM.init(this);
这步比较简单,在 app 的 Module 下创建 一个 App 继承 Application,注意 App 需要 在 AndroidManifest 中配置
public class App extends Application {@Overridepublic void onCreate() {super.onCreate();/*** 初始化融云 */ RongIM.init(this);}}
四、 连接融云
在 MainActivity 中调用RongIM.connect() 连接融云。注意此处的 Token 为一个测试 Token,你需要换成你自己的 Token,这个 Token 还需要与 RONG_CLOUD_APP_KEY 匹配。
注意,在上线前请确认在 connect 方法 ConnectCallback 中通过 onTokenIncorrect 回调方法实现重新获取 Token 的逻辑。
package rong.io.demo;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import io.rong.imkit.RongIM;import io.rong.imlib.RongIMClient;public class MainActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);String Token = “d6bCQsXiupB/4OyGkh+TOrI6ZiT8q7s0UEaMPWY0lMxmHdi1v/AAJxOma4aYXyaivfPIJjNHdE+FMH9kV/Jrxg==”;//test /*** IMKit SDK调用第二步 * * 建立与服务器的连接 * */ RongIM.connect(Token, new RongIMClient.ConnectCallback() {@Overridepublic void onTokenIncorrect() {//Connect Token 失效的状态处理,需要重新获取 Token}@Overridepublic void onSuccess(String userId) {Log.e(“MainActivity”, “——onSuccess—-” + userId);}@Overridepublic void onError(RongIMClient.ErrorCode errorCode) {Log.e(“MainActivity”, “——onError—-” + errorCode);}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.menu_main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {return super.onOptionsItemSelected(item);}}
五、 集成单聊界面
由于单聊是一个 fragment,需要在 activity 加载的布局中,添加 fragment,并且在 AndroidManifest 中添加 intent-filter
1、 添加一个 Activity,此处命名为 ConversationActivity。
package rong.io.demo;import android.annotation.TargetApi;import android.os.Build;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.view.MenuItem;/** * Created by Bob on 2015/4/16. */ public class ConversationActivity extends ActionBarActivity {private static final String TAG = ConversationActivity.class.getSimpleName();@TargetApi(Build.VERSION_CODES.LOLLIPOP)@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//唯一有用的代码,加载一个 layout setContentView(R.layout.conversation);//继承的是ActionBarActivity,直接调用 自带的 Actionbar,下面是Actionbar 的配置,如果不用可忽略… getSupportActionBar().setTitle(“聊天”);getSupportActionBar().setLogo(R.drawable.de_bar_logo);getSupportActionBar().setDisplayHomeAsUpEnabled(true);getSupportActionBar().setHomeAsUpIndicator(R.drawable.de_actionbar_back);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {finish();return super.onOptionsItemSelected(item);}
}
2、 查看布局 conversation.xml,如下:
<?xml version=“1.0″ encoding=“utf-8″?> <LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android” android:orientation=“vertical” android:layout_width=“match_parent” android:layout_height=“match_parent”> <fragmentandroid:layout_width=“match_parent” android:layout_height=“match_parent” android:name=“io.rong.imkit.fragment.ConversationFragment”/> </LinearLayout>
3、在 AndroidManifest 注册。注意需修改 host 为自己的包名,其他不需要修改。
<activity android:name=“.ConversationActivity”> <intent-filter><action android:name=“android.intent.action.VIEW” /> <category android:name=“android.intent.category.DEFAULT” /> <dataandroid:host=“rong.io.demo”android:pathPrefix=“/conversation/”android:scheme=“rong” /></intent-filter></activity>
4、在 activity 中调用 RongIM.getInstance().startPrivateChat(MainActivity.this, “2462″, “hello”); 开启单聊,如下:
package rong.io.demo;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import io.rong.imkit.RongIM;import io.rong.imlib.RongIMClient;public class MainActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);String Token = “d6bCQsXiupB/4OyGkh+TOrI6ZiT8q7s0UEaMPWY0lMxmHdi1v/AAJxOma4aYXyaivfPIJjNHdE+FMH9kV/Jrxg==”;//test /*** IMKit SDK调用第二步 * * 建立与服务器的连接 * */ RongIM.connect(Token, new RongIMClient.ConnectCallback() {@Overridepublic void onSuccess(String userId) {Log.e(“MainActivity”, “——onSuccess—-” + userId);}@Overridepublic void onError(RongIMClient.ErrorCode errorCode) {Log.e(“MainActivity”, “——onError—-” + errorCode);}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.menu_main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {/*** 启动单聊 * context - 应用上下文。 * targetUserId - 要与之聊天的用户 Id。 * title - 聊天的标题,如果传入空值,则默认显示与之聊天的用户名称。 */ if (RongIM.getInstance() != null) {RongIM.getInstance().startPrivateChat(MainActivity.this, “2462″, “hello”);}return super.onOptionsItemSelected(item);}
}
到此处 融云 SDK 单聊集成完了。
融云 SDK 集成详解 – Android Studio相关推荐
- android 融云sdk集成,使用融云SDK集成
使用融云开始还是遇到了很多的坑的,特别是看不太明白官方文档.或许自己不够有耐心. 期间还遇到了许多bug,比如,明明配置的没问题了,可我的手机还是连不上融云. 后来还是在融云的知识库中找到了解决办法, ...
- 融云android sdk文档,使用融云SDK集成
使用融云开始还是遇到了很多的坑的,特别是看不太明白官方文档.或许自己不够有耐心. 期间还遇到了许多bug,比如,明明配置的没问题了,可我的手机还是连不上融云. 后来还是在融云的知识库中找到了解决办法, ...
- android studio 导入包分不分动态静态,详解Android studio 动态fragment的用法
fragment的使用时Android的基础,它有两种用法,第一个就是静态的fragment.第二个则是动态的fragment. 静态fragment直接在layout创建你想要的fragment的X ...
- android.intent.action.view 融云,Android 融云SDK集成单聊
一 .下载 SDK 您可以到融云官方网站下载融云 SDK.融云 SDK 各部分功能以插件化的形式独立提供,开发者可以根据自己的需要,自由组合下载.各组件的功能如下: IMKit – 融云 IM 界面组 ...
- android检查新版本,详解Android Studio无法检测新版本问题解决
大家都知道Android Studio可以直接在"Menu - Check for Updates..."自动检测并更新版本,还可以在弹出的检查框中点击"Updates& ...
- android sdk 目录详解,android sdk里的各目录作用详解
AVD Manager.exe:虚拟机管理工具,用于建立和管理虚拟机. SDK Manager.exe:sdk管理工具,用于管理.下载sdk.sdk工具,能及扩展工具 tools目录:包括测试.调试. ...
- Android接入融云sdk流程(思路)
1.导入RongImKit以及v4包. 2.在融云控制台为自己的App申请AppKey和AppSecret. 3.在AndroidManifest中添加相应权限.服务.广播和app对应的AppKey. ...
- 全志 android 编译,全志Android SDK编译详解(二)
注意要确定安装了jdk) 第一步: cd lichee; ./build.sh -p sun5i_elite -k 3.0 (apt-get install uboot-mkimage需要安装m ...
- ios 融云 重写对话列表_iOS集成融云SDK part 1 小记
之前虽然稍微了解过即时通讯方面的内容,但是一直没有怎么去做过聊天部分的.这次是刚刚使用融云,做一下记录. 关于融云SDK集成的具体步骤,我都是参考以下这些文章(很多图片都是直接从这些地方拿的,我真是太 ...
最新文章
- 一文区分什么是「过拟合」和「欠拟合」?
- java测试时找不到类,我在class文件运行不了测试文件,提示找junit4找不到任何的测试项目...
- js进阶 9-5 js如何确认form的提交和重置按钮
- java中使用okhttpsoap,Android okHttp网络请求之Retrofit+Okhttp+RxJava组合
- ES6新特性_浏览器使用ES6模块化引入模块---JavaScript_ECMAScript_ES6-ES11新特性工作笔记042
- Linux Windows下忘记mysql超级管理员root密码的解决办法
- javaEmail发邮件是问号乱码,已解决
- FaceBook ATC 弱网测试工具环境搭建
- Spark SQL 用户自定义函数UDF、用户自定义聚合函数UDAF 教程(Java踩坑教学版)
- css img 适配尺寸_一次解决你的图像尺寸和定位问题
- dxlary 解决AutoCad2006致命错误unhandled access violation reading 0x0000 exception at 6532b0h。
- 锐捷服务器显示dns无法上网,上网常见故障排查指引-肇庆学院信息中心 Zhaoqing University Information Center...
- AI辅助检测脑动脉瘤,灵敏度达97.5%,华为云联合成果登上国际顶级期刊
- 七个实用的分布式开源框架
- 2020~2021年杂记之
- 怎么将微博图片中的水印去掉
- 抗混叠滤波器 - 原理
- 问题记录:键盘win键无法使用,组合键无反应,win+L不能锁屏
- Android Instant Apps
- STM32F103C8T6工程文件的创建
热门文章
- java导出jar包后,程序运行时读取图片、音乐资源文件
- centos修改磁盘uuid_Centos7 查看硬盘的UUID | 吴老二
- java 笛卡尔积_笛卡儿积的java实现
- css实现背景透明文字不透明
- 硬盘主引导记录,主分区表,分区引导记录,分区链表介绍(转)
- Axure 8.1.0.3381激活码 亲测可用
- java毕业设计-大学生实习管理系统 实习申请系统【附源码+文档】
- 关于esp8266的D0、D3、D4口的使用
- 青龙面板-中青看点脚本已修复
- CMake编译Nginx源码