一 、下载 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相关推荐

  1. android 融云sdk集成,使用融云SDK集成

    使用融云开始还是遇到了很多的坑的,特别是看不太明白官方文档.或许自己不够有耐心. 期间还遇到了许多bug,比如,明明配置的没问题了,可我的手机还是连不上融云. 后来还是在融云的知识库中找到了解决办法, ...

  2. 融云android sdk文档,使用融云SDK集成

    使用融云开始还是遇到了很多的坑的,特别是看不太明白官方文档.或许自己不够有耐心. 期间还遇到了许多bug,比如,明明配置的没问题了,可我的手机还是连不上融云. 后来还是在融云的知识库中找到了解决办法, ...

  3. android studio 导入包分不分动态静态,详解Android studio 动态fragment的用法

    fragment的使用时Android的基础,它有两种用法,第一个就是静态的fragment.第二个则是动态的fragment. 静态fragment直接在layout创建你想要的fragment的X ...

  4. android.intent.action.view 融云,Android 融云SDK集成单聊

    一 .下载 SDK 您可以到融云官方网站下载融云 SDK.融云 SDK 各部分功能以插件化的形式独立提供,开发者可以根据自己的需要,自由组合下载.各组件的功能如下: IMKit – 融云 IM 界面组 ...

  5. android检查新版本,详解Android Studio无法检测新版本问题解决

    大家都知道Android Studio可以直接在"Menu - Check for Updates..."自动检测并更新版本,还可以在弹出的检查框中点击"Updates& ...

  6. android sdk 目录详解,android sdk里的各目录作用详解

    AVD Manager.exe:虚拟机管理工具,用于建立和管理虚拟机. SDK Manager.exe:sdk管理工具,用于管理.下载sdk.sdk工具,能及扩展工具 tools目录:包括测试.调试. ...

  7. Android接入融云sdk流程(思路)

    1.导入RongImKit以及v4包. 2.在融云控制台为自己的App申请AppKey和AppSecret. 3.在AndroidManifest中添加相应权限.服务.广播和app对应的AppKey. ...

  8. 全志 android 编译,全志Android SDK编译详解(二)

    注意要确定安装了jdk) 第一步: cd  lichee; ./build.sh  -p sun5i_elite -k 3.0  (apt-get install uboot-mkimage需要安装m ...

  9. ios 融云 重写对话列表_iOS集成融云SDK part 1 小记

    之前虽然稍微了解过即时通讯方面的内容,但是一直没有怎么去做过聊天部分的.这次是刚刚使用融云,做一下记录. 关于融云SDK集成的具体步骤,我都是参考以下这些文章(很多图片都是直接从这些地方拿的,我真是太 ...

最新文章

  1. 一文区分什么是「过拟合」和「欠拟合」?
  2. java测试时找不到类,我在class文件运行不了测试文件,提示找junit4找不到任何的测试项目...
  3. js进阶 9-5 js如何确认form的提交和重置按钮
  4. java中使用okhttpsoap,Android okHttp网络请求之Retrofit+Okhttp+RxJava组合
  5. ES6新特性_浏览器使用ES6模块化引入模块---JavaScript_ECMAScript_ES6-ES11新特性工作笔记042
  6. Linux Windows下忘记mysql超级管理员root密码的解决办法
  7. javaEmail发邮件是问号乱码,已解决
  8. FaceBook ATC 弱网测试工具环境搭建
  9. Spark SQL 用户自定义函数UDF、用户自定义聚合函数UDAF 教程(Java踩坑教学版)
  10. css img 适配尺寸_一次解决你的图像尺寸和定位问题
  11. dxlary 解决AutoCad2006致命错误unhandled access violation reading 0x0000 exception at 6532b0h。
  12. 锐捷服务器显示dns无法上网,上网常见故障排查指引-肇庆学院信息中心 Zhaoqing University Information Center...
  13. AI辅助检测脑动脉瘤,灵敏度达97.5%,华为云联合成果登上国际顶级期刊
  14. 七个实用的分布式开源框架
  15. 2020~2021年杂记之
  16. 怎么将微博图片中的水印去掉
  17. 抗混叠滤波器 - 原理
  18. 问题记录:键盘win键无法使用,组合键无反应,win+L不能锁屏
  19. Android Instant Apps
  20. STM32F103C8T6工程文件的创建

热门文章

  1. java导出jar包后,程序运行时读取图片、音乐资源文件
  2. centos修改磁盘uuid_Centos7 查看硬盘的UUID | 吴老二
  3. java 笛卡尔积_笛卡儿积的java实现
  4. css实现背景透明文字不透明
  5. 硬盘主引导记录,主分区表,分区引导记录,分区链表介绍(转)
  6. Axure 8.1.0.3381激活码 亲测可用
  7. java毕业设计-大学生实习管理系统 实习申请系统【附源码+文档】
  8. 关于esp8266的D0、D3、D4口的使用
  9. 青龙面板-中青看点脚本已修复
  10. CMake编译Nginx源码