转载一篇技术文章,超赞! 融云 SDK 2.0 集成详解-Android Studio

最近在了解融云的一些功能,看了很多文档。也在一些技术类的论坛上看过一些分享。看到这篇关于融云sdk2.0的集成详解。一目了然的让我对融云的产品更详细了解和使用了。下面是某技术大拿的分享:


融云 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.1创建一个Project,点击 next

Center

1.1.2,点击 next

Center

1.1.3,点击 nextCenter

1.1.4,点击 finish

Center

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

Center

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

Center

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

Center

此时第一步完成。


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


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

[java] view plaincopy在CODE上查看代码片派生到我的代码片

  1. public class App extends Application {  

  2.   

  3.     @Override  

  4.     public void onCreate() {  

  5.         super.onCreate();  

  6.         /** 

  7.          * 初始化融云 

  8.          */  

  9.         RongIM.init(this);  

  10.     }  

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

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

[java] view plaincopy在CODE上查看代码片派生到我的代码片

  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.         return super.onOptionsItemSelected(item);  

  51.     }  

  52. }  

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


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

[java] view plaincopy在CODE上查看代码片派生到我的代码片

  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.     }  

  35. }  


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

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  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 为自己的包名,其他不需要修改。 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  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"); 开启单聊,如下:

[java] view plaincopy在CODE上查看代码片派生到我的代码片

  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





你可能感兴趣的:(android,Activity,文章,产品,技术类)