以下步驟都是建立在項目已經導入 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 的廣播接收器,否則可能會導致點擊後臺通知沒有反應,或者收不到推送通知等問題。
點擊這裏