一 核心类说明
a. 使用 IMKit SDK, 核心类为 RongIM。
b. 使用 IMLib SDK, 核心类为 RongIMClient
调用任何 API 方法(包括初始化)时,请务必确保通过对应的核心类进行调用,否则会导致异常。
二 初始化时机
a. 在应用 **主进程** 中,初始化一次即可。
b. 快速集成时,推荐在 Application 的 onCreate() 复写方法中初始化 SDK。
c. 鉴于大部分正式应用,根据工信部要求,会有用户隐私协议页面,您也可以在用户接受隐私协议后再初始化。
三 示例代码
下面代码示范了如果在用户接受隐私协议后再初始化 SDK,以使用 IMKit SDK 为例。
如果您使用的是 IMlib SDK, 请将示例代码中的 RongIM 替换为 RongIMClient.
/**
* 应用启动时,判断用户是否已接受隐私协议,如果已接受,正常初始化;否则跳转到隐私授权页面请求用户授权。
*/
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
//伪代码,从 sp 里读取用户是否已接受隐私协议
boolean isPrivacyAccepted = getPrivacyStateFromSp();
//用户已接受隐私协议,进行初始化
if (isPrivacyAccepted) {
String appKey = "融云开发者后台创建的应用的 AppKey";
//第一个参数必须传应用上下文
RongIM.init(this.getApplicationContext(), appKey);
} else {
//用户未接受隐私协议,跳转到隐私授权页面。
goToPrivacyActivity();
}
...
}}
/**
* 该类为隐私授权页面,示范如何在用户接受隐私协议后进行 IM 初始化。
*/
public class PrivacyActivity extends Activity implements View.OnClickListener {
...
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.accept_privacy:
//伪代码,保存到 sp
savePrivacyStateToSp();
String appKey = "融云开发者后台创建的应用的 AppKey";
//第一个参数必须传应用上下文
RongIM.init(this.getApplicationContext(), appKey);
break;
default:
...
}
}}