Android Studio集成融云官方入门手册

国内首家免费的专业即时通讯云服务提供商

融云 SDK 2.0 集成详解 – Android Studio

rongcloud 

融云 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,如图:

integrated_1

 

1.2、默认点击 next,如图:

integrated_2

 

1.3、选择 Activity 点击 next,如图:

integrated_3

 

1.4、点击 finish 创建完成,如图:

integrated_4

 

1.5、创建完 Project 后, 需要添加 SDK 作为依赖项目。点击 File–>Import Module,如图:

integrated_5

 

找到你从官网下载的 SDK,导入 SDK 中的 IMKit 作为依赖 Module。打开你工程的 build.gradle,在 dependencies 中添加 compile project(‘:IMKit’),此处的 IMkit 为依赖的 Module 名称。如图:

integrated_6

 

做好项目依赖以后到 Module IMkit 中打开 AndroidManifest 修改 RONG_CLOUD_APP_KEY ,修改为你自己的 key,并将 AndroidManifest 中所有 host 改为你依赖项目的包名(此处指 Module app 的包名)。如图:

integrated_7

 

此时第一步已完成。

 

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

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

  1. public class App extends Application {  
  2.   
  3.     @Override  
  4.     public void onCreate() {  
  5.         super.onCreate();  
  6.         /** 
  7.          * 初始化融云 
  8.          */  
  9.         RongIM.init(this);  
  10.     }  
  11. }  

3、在 activity 中连接融云,RongIM.connect(token,callback)操作。

在 MainActivity 中做融云的连接操作。注意此处的 Token 为一个测试 Token,你需要换成你自己的 Token,这个 Token 还需要与 RONG_CLOUD_APP_KEY 匹配。

注意,在上线前请确认在 connect 方法 ConnectCallback 中通过 onTokenIncorrect 回调方法实现重新获取 Token 的逻辑。

  1. package rong.io.demo;  
  2.   
  3. import android.support.v7.app.ActionBarActivity;  
  4. import android.os.Bundle;  
  5. import android.util.Log;  
  6. import android.view.Menu;  
  7. import android.view.MenuItem;  
  8.   
  9. import io.rong.imkit.RongIM;  
  10. import io.rong.imlib.RongIMClient;  
  11.   
  12.   
  13. public class MainActivity extends ActionBarActivity {  
  14.   
  15.   
  16.     @Override  
  17.     protected void onCreate(Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.activity_main);  
  20.   
  21.         String Token = “d6bCQsXiupB/4OyGkh+TOrI6ZiT8q7s0UEaMPWY0lMxmHdi1v/AAJxOma4aYXyaivfPIJjNHdE+FMH9kV/Jrxg==”;//test  
  22.         /** 
  23.          * IMKit SDK调用第二步 
  24.          * 
  25.          * 建立与服务器的连接 
  26.          * 
  27.          */  
  28.         RongIM.connect(Token, new RongIMClient.ConnectCallback() {  
  29.           @Override
  30.            public void onTokenIncorrect() {
  31.                //Connect Token 失效的状态处理,需要重新获取 Token
  32.             }
  33.             @Override  
  34.             public void onSuccess(String userId) {  
  35.                 Log.e(“MainActivity”, “——onSuccess—-” + userId);  
  36.             }  
  37.   
  38.             @Override  
  39.             public void onError(RongIMClient.ErrorCode errorCode) {  
  40.                 Log.e(“MainActivity”, “——onError—-” + errorCode);  
  41.             }  
  42.         });  
  43.     }  
  44.   
  45.     @Override  
  46.     public boolean onCreateOptionsMenu(Menu menu) {  
  47.         getMenuInflater().inflate(R.menu.menu_main, menu);  
  48.         return true;  
  49.     }  
  50.   
  51.     @Override  
  52.     public boolean onOptionsItemSelected(MenuItem item) {  
  53.    
  54.         return super.onOptionsItemSelected(item);  
  55.     }  

 

4、由于单聊是一个 fragment,需要在 activity 加载的布局中,添加 fragment,并且在 AndroidManifest  中添加 intent-filter

4.1、 添加一个 Activity,此处命名为 ConversationActivity。

  1. package rong.io.demo;  
  2.   
  3. import android.annotation.TargetApi;  
  4. import android.os.Build;  
  5. import android.os.Bundle;  
  6. import android.support.v7.app.ActionBarActivity;  
  7. import android.view.MenuItem;  
  8.   
  9. /** 
  10.  * Created by Bob on 2015/4/16. 
  11.  */  
  12. public class ConversationActivity extends ActionBarActivity {  
  13.   
  14.     private static final String TAG = ConversationActivity.class.getSimpleName();  
  15.   
  16.     @TargetApi(Build.VERSION_CODES.LOLLIPOP)  
  17.     @Override  
  18.     public void onCreate(Bundle savedInstanceState) {  
  19.   
  20.         super.onCreate(savedInstanceState);  
  21.         //唯一有用的代码,加载一个 layout  
  22.         setContentView(R.layout.conversation);  
  23.         //继承的是ActionBarActivity,直接调用 自带的 Actionbar,下面是Actionbar 的配置,如果不用可忽略…  
  24.         getSupportActionBar().setTitle(“聊天”);  
  25.         getSupportActionBar().setLogo(R.drawable.de_bar_logo);  
  26.         getSupportActionBar().setDisplayHomeAsUpEnabled(true);  
  27.         getSupportActionBar().setHomeAsUpIndicator(R.drawable.de_actionbar_back);  
  28.     }  
  29.   
  30.     @Override  
  31.     public boolean onOptionsItemSelected(MenuItem item) {  
  32.         finish();  
  33.         return super.onOptionsItemSelected(item);  
  34.     }  

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

  1. <?xml version=“1.0″ encoding=“utf-8″?>  
  2. <LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”  
  3.     android:orientation=“vertical” android:layout_width=“match_parent”  
  4.     android:layout_height=“match_parent”>  
  5.   
  6.     <fragment  
  7.         android:layout_width=“match_parent”  
  8.         android:layout_height=“match_parent”  
  9.         android:name=“io.rong.imkit.fragment.ConversationFragment”/>  
  10.   
  11. </LinearLayout>

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

  1. <activity android:name=“.ConversationActivity”>  
  2.            <intent-filter>  
  3.                <action android:name=“android.intent.action.VIEW” />  
  4.   
  5.                <category android:name=“android.intent.category.DEFAULT” />  
  6.   
  7.                <data  
  8.                    android:host=“rong.io.demo”  
  9.                    android:pathPrefix=“/conversation/”  
  10.                    android:scheme=“rong” />  
  11.            </intent-filter>  
  12.   
  13.        </activity>

 

5、在 activity 中调用  RongIM.getInstance().startPrivateChat(MainActivity.this, “2462″, “hello”); 开启单聊,如下:

  1. package rong.io.demo;  
  2.   
  3. import android.support.v7.app.ActionBarActivity;  
  4. import android.os.Bundle;  
  5. import android.util.Log;  
  6. import android.view.Menu;  
  7. import android.view.MenuItem;  
  8.   
  9. import io.rong.imkit.RongIM;  
  10. import io.rong.imlib.RongIMClient;  
  11.   
  12.   
  13. public class MainActivity extends ActionBarActivity {  
  14.   
  15.   
  16.     @Override  
  17.     protected void onCreate(Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.activity_main);  
  20.   
  21.         String Token = “d6bCQsXiupB/4OyGkh+TOrI6ZiT8q7s0UEaMPWY0lMxmHdi1v/AAJxOma4aYXyaivfPIJjNHdE+FMH9kV/Jrxg==”;//test  
  22.         /** 
  23.          * IMKit SDK调用第二步 
  24.          * 
  25.          * 建立与服务器的连接 
  26.          * 
  27.          */  
  28.         RongIM.connect(Token, new RongIMClient.ConnectCallback() {  
  29.             @Override  
  30.             public void onSuccess(String userId) {  
  31.                 Log.e(“MainActivity”, “——onSuccess—-” + userId);  
  32.             }  
  33.   
  34.             @Override  
  35.             public void onError(RongIMClient.ErrorCode errorCode) {  
  36.                 Log.e(“MainActivity”, “——onError—-” + errorCode);  
  37.             }  
  38.         });  
  39.     }  
  40.   
  41.     @Override  
  42.     public boolean onCreateOptionsMenu(Menu menu) {  
  43.         getMenuInflater().inflate(R.menu.menu_main, menu);  
  44.         return true;  
  45.     }  
  46.   
  47.     @Override  
  48.     public boolean onOptionsItemSelected(MenuItem item) {  
  49.   
  50.         /** 
  51.          * 启动单聊 
  52.          * context - 应用上下文。 
  53.          * targetUserId - 要与之聊天的用户 Id。 
  54.          * title - 聊天的标题,如果传入空值,则默认显示与之聊天的用户名称。 
  55.          */  
  56.         if (RongIM.getInstance() != null) {  
  57.             RongIM.getInstance().startPrivateChat(MainActivity.this, “2462″, “hello”);  
  58.         }  
  59.   
  60.         return super.onOptionsItemSelected(item);  
  61.     }  
  62. }

到此处 融云 SDK 单聊集成完了,其他的跟这差不多。

Demo 下载地址:http://download.csdn.net/detail/duqiuke/8641459

IMLib 集成地址:http://blog.rongcloud.cn/?p=535

 

posted on 2015-12-06 00:11  神难比  阅读(637)  评论(0)    收藏  举报

导航