首先在融云官网去注册或者登陆,然后点击我的控制台进入创建应用,如果已经有应用了,就把当前应用打开,选择
获取到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、在 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 单聊集成完了,其他的跟这差不多。
2). 测试的时候选择
开发环境,
上线的时候选择生产环境。
3). 测试的时候需要获取token,在后在这里:
![这里写图片描述](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,把项目运行在另外一个手机上,这样两个手机就可以进行单聊了。源码下载
学习链接