安卓接入融云即时通讯的简单步骤

首先在融云官网去注册或者登陆,然后点击我的控制台进入创建应用,如果已经有应用了,就把当前应用打开,选择安卓接入融云即时通讯的简单步骤_第1张图片
获取到App Key。

融云 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, “aa″, “hello”); 开启单聊 。

第一步,去官网点击下载IMKitsdk下载对应的SDK,导入studio中。

做好项目依赖以后到 Module IMkit 中打开 AndroidManifest 修改 RONG_CLOUD_APP_KEY ,修改为你自己的 key,并将 AndroidManifest 中所有 host 改为你依赖项目的包名(此处指 Module app 的包名)。
安卓接入融云即时通讯的简单步骤_第2张图片

此时第一步已完成。

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,如下:

  
  
  
      
  

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

  
             
                 
  
                 
  
                 
             
  
       

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 单聊集成完了,其他的跟这差不多。

这里注意:
1). 创建应用的时候,选择安卓接入融云即时通讯的简单步骤_第3张图片

2). 测试的时候选择
安卓接入融云即时通讯的简单步骤_第4张图片
开发环境,
上线的时候选择生产环境。
3). 测试的时候需要获取token,在后在这里:
安卓接入融云即时通讯的简单步骤_第5张图片

![这里写图片描述](https://img-blog.csdn.net/20160428113409903)

在这里获取需要的token 和 用户id,如果上线以后token和用户id都是从服务端接口那里获取的。

获取到需要的token 和 用户id后,在代码中:

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);  
            }  
        }
          /** 
         * 启动单聊 
         * context - 应用上下文。 
         * targetUserId - 要与之聊天的用户 Id。 
         * title - 聊天的标题,如果传入空值,则默认显示与之聊天的用户名称。 
         */  
        if (RongIM.getInstance() != null) {  
            RongIM.getInstance().startPrivateChat(MainActivity.this, “aa″, “hello”);  
        }  

假如用户id为aa和bb的两个人需要建立聊天功能,就按照上面的办法分别获取到,aa和aa对应的token,把项目在手机中运行起来,然后在获取到bb和bb对应的token,把项目运行在另外一个手机上,这样两个手机就可以进行单聊了。源码下载

学习链接

你可能感兴趣的:(安卓接入融云即时通讯的简单步骤)