以下步骤都是建立在项目已经导入 IMKit的基础上的。
1、配置融云APPKEY
打开 IMKit 的 AndroidManifest 找到 以下内容并且替换为你自己的融云APPKEY。
<meta-data
android:name="RONG_CLOUD_APP_KEY"
android:value="您自己的App Key" />
2、初始化融云
在Application的onCreate()方法中加入:
/**
* 初始化
*/
RongIM.init(this);
3、登录的用户连接到融云服务器
首先在通过融云 Server API 接口获取 Token,然后再把 Token 传入 connect 方法,开始连接服务器。在整个应用程序全局,只需要调用一次 connect 方法,SDK 会负责自动重连。
/**
* 建立与服务器的连接
*/
RongIM.connect(token, new RongIMClient.ConnectCallback() {
/**
* Token 错误,在线上环境下主要是因为 Token 已经过期,您需要向 App Server 重新请求一个新的 Token
*/
@Override
public void onTokenIncorrect() {
Log.d("LoginActivity", "--onTokenIncorrect");
}
/**
* 连接融云成功
* @param userid 当前 token
*/
@Override
public void onSuccess(String userid) {
Log.d("LoginActivity", "--onSuccess" + userid);
//您需要的操作
}
/**
* 连接融云失败
* @param errorCode 错误码,可到官网 查看错误码对应的注释
*/
@Override
public void onError(RongIMClient.ErrorCode errorCode){
Log.d("LoginActivity", "--onError" + errorCode);
}
});
4、配置会话列表
在项目中建一个Activity和xml文件。
public class ConversationListActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.conversationlist);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/conversationlist"
android:name="io.rong.imkit.fragment.ConversationListFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
注意:android:name 是固定的,fragment必须给一个id
在 AndroidManifest.xml 中配置 intent-filter:
融云的会话列表和会话界面都需要接收 intent 并实现跳转,比如收到通知或推送后,点击通知栏可以跳转到会话列表。因此您需要在 AndroidManifest.xml 中,您的会话列表 Activity 下面配置 intent-filter,其中,android:host 是您应用的包名,需要手动修改,其他请保持不变。
<!--会话列表-->
<activity
android:name="您建立的会话列表Activity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="您应用的包名"
android:pathPrefix="/conversationlist"
android:scheme="rong" />
</intent-filter>
</activity>
5、启动会话界面
完成以上配置后,即可启动会话及会话列表界面,启动界面操作必须在执行初始化 SDK 方法 init 及连接融云服务器 connect 之后进行。
/**
* 启动单聊
* context - 应用上下文。
* targetUserId - 要与之聊天的用户 Id。
* title - 聊天的标题,如果传入空值,则默认显示与之聊天的用户名称。
*/
if (RongIM.getInstance() != null) {
RongIM.getInstance().startPrivateChat(context , targetUserId , title);
}
6、自定义广播接收器
2.6.0 之后的版本必须自定义一个继承 PushMessageReceiver 的广播接收器,否则可能会导致点击后台通知没有反应,或者收不到推送通知等问题。
点击这里