1. 首先依赖下载的工程→Rong_Cloud_Android_IMKit_SDK_v2_7_0_dev,依赖工程中需要修改AndroidManifest.xml,把RONG_CLOUD_APP_KEY换成我们自己申请应用的AppKey。
2.在应用程序主入口加入一下代码package com.bwie.test.rongyu;
import android.app.ActivityManager;
import android.app.Application;
import android.content.Context;
import io.rong.imkit.RongIM;
/**
* Created by lenovo on 2016/8/22.
*/
public class App extends Application{
@Override
public void onCreate() {
super.onCreate();
/**
* OnCreate 会被多个进程重入,这段保护代码,确保只有您需要使用 RongIM 的进程和 Push 进程执行了 init。
* io.rong.push 为融云 push 进程名称,不可修改。
*/
if (getApplicationInfo().packageName.equals(getCurProcessName(getApplicationContext())) ||
"io.rong.push".equals(getCurProcessName(getApplicationContext()))) {
/**
* IMKit SDK调用第一步 初始化
*/
RongIM.init(this);
}
}
/**
* 获得当前进程的名字
*
* @param context
* @return 进程号
*/
public static String getCurProcessName(Context context) {
int pid = android.os.Process.myPid();
ActivityManager activityManager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningAppProcessInfo appProcess : activityManager
.getRunningAppProcesses()) {
if (appProcess.pid == pid) {
return appProcess.processName;
}
}
return null;
}
}在主MainActivity中,加入以下代码(这一快需要注意的是启动会话界面中Userid,Usertitle)
package com.bwie.test.rongyu;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
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;
import io.rong.imlib.model.Conversation;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String token="owk23zwVfr2x8YG4BUkyoFstiWBEn/V5QzmSXISTmQ//sAl2Oo2E5OyI6Kn9TAKIo2uMLF18p45UERgUG7vxQg==";
connect(token);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//启动会话界面
if (RongIM.getInstance() != null)
RongIM.getInstance().startPrivateChat(this, "1234", "");
//启动会话列表界面
if (RongIM.getInstance() != null)
RongIM.getInstance().startConversationList(this);
//启动聚合会话列表界面
if (RongIM.getInstance() != null)
RongIM.getInstance().startSubConversationList(this, Conversation.ConversationType.GROUP);
return super.onOptionsItemSelected(item);
}
/**
* 建立与融云服务器的连接
*
* @param token
*/
private void connect(String token) {
if (getApplicationInfo().packageName.equals(App.getCurProcessName(getApplicationContext()))) {
/**
* IMKit SDK调用第二步,建立与服务器的连接
*/
RongIM.connect(token, new RongIMClient.ConnectCallback() {
/**
* Token 错误,在线上环境下主要是因为 Token 已经过期,您需要向 App Server 重新请求一个新的 Token
*/
@Override
public void onTokenIncorrect() {
Log.d("wtt", "--onTokenIncorrect");
}
/**
* 连接融云成功
* @param userid 当前 token
*/
@Override
public void onSuccess(String userid) {
Log.d("wtt", "--onSuccess" + userid);
startActivity(new Intent(MainActivity.this, HuiHuaListActivity.class));
finish();
}
/**
* 连接融云失败
* @param errorCode 错误码,可到官网 查看错误码对应的注释
*/
@Override
public void onError(RongIMClient.ErrorCode errorCode) {
Log.d("wtt", "--onError" + errorCode);
}
});
}
}
}在会话列表中
package com.bwie.test.rongyu;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class HuiHuaListActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hui_hua_list);
}
}在会话界面中
package com.bwie.test.rongyu;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import io.rong.imlib.model.Conversation;
public class HuihuaActivity extends ActionBarActivity {
/**
* 目标 Id
*/
private String mTargetId;
/**
* 刚刚创建完讨论组后获得讨论组的id 为targetIds,需要根据 为targetIds 获取 targetId
*/
private String mTargetIds;
/**
* 会话类型
*/
private Conversation.ConversationType mConversationType;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_huihua);
}
}
在activity_hui_hua_list.xml
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bwie.test.rongyu.HuiHuaListActivity">
android:id="@+id/conversationlist"
android:name="io.rong.imkit.fragment.ConversationListFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
在activity_huihua.xml中
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bwie.test.rongyu.HuihuaActivity">
android:id="@+id/conversation"
android:name="io.rong.imkit.fragment.ConversationFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
在清单文件中(这在Data——>host记住要修改自己的Host,否则会报错,说找不到隐士跳转的对象)
package="com.bwie.test.rongyu">
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:name=".App"
android:supportsRtl="true"
android:theme="@style/AppTheme">
android:name=".HuiHuaListActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize">
android:host="com.bwie.test.rongyu"
android:pathPrefix="/conversationlist"
android:scheme="rong" />
android:name=".HuihuaActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize">
android:host="com.bwie.test.rongyu"
android:pathPrefix="/conversation/"
android:scheme="rong" />
以上就是简单集成。如果需要实现两个人在手机上安装同一个AppKey的应用,只需要修改一下API上的Token就OK了!以下就是官网的说明。
userId : 每一个用户对应一个 userId,这个 userId 是您维护的,所以您可以直接赋值,两个您的的用户通信,对于融云来说就是两个 userId 间通讯。