实现融云的单人会话大致步骤:
1.
将IMKitSDK作为moudle导入工程中
2.
初始化:RongIM.init(this);
3.
创建与服务器的连接,RongIM.connect();
4.
创建单聊的Activity,继承FragmentActivity
5.
开启单聊,RongIM.getInstance().startPrivateChat(getActivity(),"10086","hello");
下面我将仔细的讲解整个过程:
1.开始之前,你要先建一个新的工程,下载IMKitSDK的包下来,并且解压缩,(注意:
是IMKitSDK,不是IMLibSDK的),如果是新版本,只导入IMKit的moudle可能会出错,所以我下的是这个版本,这个直接导入是没有问题的。
需要的下载的SDK:
2.完成后,我们要在融云官网上新建一个我们的项目,网址是https://developer.rongcloud.cn/app/detail/j4KlLWmqj0iOQdHdWlE=,创建完成后大致是这样的。可以再右侧看见一系列的服务信息。
3.我们将下载的IMKit的包作为moudle导入到我们新建的工程里面
File---->new---->import moudle
然后选择我们下载的包里面的IMKit就可以了。(注意:我们还要在下面的地方添加依赖,否者我们是无法调用IMKit的SDK的)
4.
我们将上面的一切都做完后,Android Studio的左侧目录是这样的
5。
接下来我们将申请到的APPKey添加到IMKit的AndroidMainifest.xml文件中。(注意:不用添加到你自己的项目的AndroidMainifest.xml文件中,重复添加会报错)
6。
这都做完后,前期的准备已经做好了,我们开始初始化融云SDK:
在我们的项目中新建一个类App继承Application,(注意:App需要在AndroidManifest.xml中配置)
7。
创建与融云的连接:RongIM.connect()
注意此处的Token为一个测试的Token,你需要换成你自己的Token,这个Token还需要与RONG_CLOUD_APP_KEY匹配。
选择API调试---------->获取Token
填写你的UserID,和name:
然后提交后就可以获取一个测试用的Token
8。
获取到的Token
连接的函数:
/**
* <>连接服务器,在整个应用程序全局,只需要调用一次,需要在{@link #init(Context) 之后调用}
* <>如果调用此接口遇到连接失败,SDK会自动启动重连接机制进行最多10次重连,分别是1,2,4,8,16,32,
* 64,128,256,512秒后,在这之后如果仍然没有连接成功,还会在当检测到设备网络状态变化时再次进行重连
* @param token 从服务器获取的用户令牌(Token)
* @param callback 连接回调
* @param RongIM 客户端核心类的实例
*/
private void connect(String token)
{
RongIM.connect(token1, new RongIMClient.ConnectCallback()
{
/**
* Token错误。可以从下面两点检查
* 1.Token是否过期,如果过期你需要向App Server重新请求一个Token
* 2.token对应的Appkey 和工程里设置的appkey是否一致
*/
@Override
public void onTokenIncorrect()
{
}
/**
* 连接融云成功
* @param s 当前token对应的用户的id
*/
@Override
public void onSuccess(String s)
{
Log.d("onSuccess","onSuccess: "+s);
}
/**
* 连接融云失败
* @param errorCode 错误码,可到官网 查看错误码对应的注释
*/
@Override
public void onError(RongIMClient.ErrorCode errorCode)
{
Log.d("onSuccess","onSuccess userid: "+errorCode.getValue());
}
});
}
9。
打开单聊界面:
10。这是打开的单聊界面但是我们并没有注册Activity,所以我们要注册一个活动
融云IMKitSDK使用了Fragment作为会话列表和会话界面的组件,其优点是支持各种嵌套方式,更符合你的定制化需求。下面说明如何在Activity里以静态方式加载融云Fragment
新建Activity:
布局:
因为我们的Activity是采用的隐式Intent,所以要配置intent-filter:
(注意:将host换成我们自己的工程的包名)
好了这样就完成了单聊界面的跳转了。我们可以在融云官方网站上试一试,发一个消息过来。