Android Studio集成融云官方入门手册
融云 SDK 2.0 集成详解 – Android Studio
融云 SDK 2.0 集成与 1.+ 的版本有一些区别, 2.0 是以项目依赖的形式加入你的项目中。
使用 Android Studio 集成融云,完成简单的单人会话,大概需要 5步:
1、将 IMKitsdk 作为 Module 导入到 Project 中。
2、在 application 中调用 RongIM.init(this) 。
3、在 activity 中连接融云,RongIM.connect(token,callback)操作。
4、由于单聊是一个fragment,需要在 activity 加载的布局中,添加 fragment,并且在 AndroidManifest 中添加 intent-filter 。
5、在 activity 中调用 RongIM.getInstance().startPrivateChat(MainActivity.this, “2462″, “hello”); 开启单聊 。
下面分别讲解这 5 步:
1、使用 Android Studio 创建一个 Project(作为一个有经验的 Studio 使用者,请忽略…)
1.1、创建一个 Project,点击 next,如图:
1.2、默认点击 next,如图:
1.3、选择 Activity 点击 next,如图:
1.4、点击 finish 创建完成,如图:
1.5、创建完 Project 后, 需要添加 SDK 作为依赖项目。点击 File–>Import Module,如图:
找到你从官网下载的 SDK,导入 SDK 中的 IMKit 作为依赖 Module。打开你工程的 build.gradle,在 dependencies 中添加 compile project(‘:IMKit’),此处的 IMkit 为依赖的 Module 名称。如图:
做好项目依赖以后到 Module IMkit 中打开 AndroidManifest 修改 RONG_CLOUD_APP_KEY ,修改为你自己的 key,并将 AndroidManifest 中所有 host 改为你依赖项目的包名(此处指 Module app 的包名)。如图:
此时第一步已完成。
2、在 application 中调用 RongIM.init(this);
这步比较简单,在 app 的 Module 下创建 一个 App 继承 Application,注意 App 需要 在 AndroidManifest 中配置
- public class App extends Application {
- @Override
- public void onCreate() {
- super.onCreate();
- /**
- * 初始化融云
- */
- RongIM.init(this);
- }
- }
3、在 activity 中连接融云,RongIM.connect(token,callback)操作。
在 MainActivity 中做融云的连接操作。注意此处的 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);
- }
- }
4、由于单聊是一个 fragment,需要在 activity 加载的布局中,添加 fragment,并且在 AndroidManifest 中添加 intent-filter
4.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);
- }
- }
4.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”>
- <fragment
- android:layout_width=“match_parent”
- android:layout_height=“match_parent”
- android:name=“io.rong.imkit.fragment.ConversationFragment”/>
- </LinearLayout>
4.3、在 AndroidManifest 注册。注意需修改 host 为自己的包名,其他不需要修改。
- <activity android:name=“.ConversationActivity”>
- <intent-filter>
- <action android:name=“android.intent.action.VIEW” />
- <category android:name=“android.intent.category.DEFAULT” />
- <data
- android:host=“rong.io.demo”
- android:pathPrefix=“/conversation/”
- android:scheme=“rong” />
- </intent-filter>
- </activity>
5、在 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 单聊集成完了,其他的跟这差不多。
Demo 下载地址:http://download.csdn.net/detail/duqiuke/8641459
IMLib 集成地址:http://blog.rongcloud.cn/?p=535








浙公网安备 33010602011771号