android studio 融云,融云 SDK 集成详解 – Android Studio

一 、下载 SDK

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

IMKit – 融云 IM 界面组件

IMLib – 融云 IM 通讯能力库

CallKit – 融云音视频界面组件

CallLib – 融云音视频核心组件

LocationLib – 融云位置相关库

PushLib – 融云第三方推送库

RedPacket – 融云红包相关组件

二、以 Module 形式导入各组件

1、打开你的工程, File -> New -> Import Module

0818b9ca8b590ca3270a3433284dd417.png

打开你从官网下载的融云 SDK,选择 IMKit 。如图:

0818b9ca8b590ca3270a3433284dd417.png

根据你的需要,以同样的步骤导入SDK里的其它组件: IMLib, CallKit, CallLib, RedPacket。

2、打开应用的 build.gradle,在 dependencies 中添加 compile project(‘:IMKit’)。如图:

0818b9ca8b590ca3270a3433284dd417.png

3、将 LocationLib 和 PushLib 里的 jar 包拷贝到你应用的 libs 目录下(如果不需要位置功能和小米推送,可跳过此步骤)。

0818b9ca8b590ca3270a3433284dd417.png

4、打开 IMLib Module 的 AndroidManifest.xml 文件,把 meta-data RONG_CLOUD_APP_KEY 的值修改为你自己的 key,并将 AndroidManifest 中所有 host 改为你依赖项目的包名(此处指 app Module 的包名)。如图:

0818b9ca8b590ca3270a3433284dd417.png

三、初始化 SDK

在 application 中调用 RongIM.init(this);

这步比较简单,在 app 的 Module 下创建 一个 App 继承 Application,注意 App 需要 在 AndroidManifest 中配置

public class App extends Application {

@Override

public 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 {

@Override

protected 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() {

@Override

public void onTokenIncorrect() {

//Connect Token 失效的状态处理,需要重新获取 Token

}

@Override

public void onSuccess(String userId) {

Log.e(“MainActivity”, “——onSuccess—-” + userId);

}

@Override

public void onError(RongIMClient.ErrorCode errorCode) {

Log.e(“MainActivity”, “——onError—-” + errorCode);

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.menu_main, menu);

return true;

}

@Override

public 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)

@Override

public 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);

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

finish();

return super.onOptionsItemSelected(item);

}

}

2、 查看布局 conversation.xml,如下:

android:orientation=“vertical” android:layout_width=“match_parent”

android:layout_height=“match_parent”>

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:name=“io.rong.imkit.fragment.ConversationFragment”/>

3、在 AndroidManifest 注册。注意需修改 host 为自己的包名,其他不需要修改。

android:host=“rong.io.demo”

android:pathPrefix=“/conversation/”

android:scheme=“rong” />

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 {

@Override

protected 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() {

@Override

public void onSuccess(String userId) {

Log.e(“MainActivity”, “——onSuccess—-” + userId);

}

@Override

public void onError(RongIMClient.ErrorCode errorCode) {

Log.e(“MainActivity”, “——onError—-” + errorCode);

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.menu_main, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

/** * 启动单聊 * context - 应用上下文。 * targetUserId - 要与之聊天的用户 Id。 * title - 聊天的标题,如果传入空值,则默认显示与之聊天的用户名称。 */

if (RongIM.getInstance() != null) {

RongIM.getInstance().startPrivateChat(MainActivity.this, “2462″, “hello”);

}

return super.onOptionsItemSelected(item);

}

}

到此处 融云 SDK 单聊集成完了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值