1、首先在官方下载IMKit SDK,把压缩包解压,解压后应该是这样的
2、然后打开你的工程,导入解压后的文件夹中的IMKit,IMLib。
3、接下来打开应用的build.gradle,在dependencies中添加 compile project(‘:IMKit’)。
4、将 LocationLib 和 PushLib 里的 jar 包拷贝到你应用的 libs 目录下(如果不需要位置功能和小米推送,可跳过此步骤)
5、打开 IMLib Module 的 AndroidManifest.xml 文件,把 meta-data RONG_CLOUD_APP_KEY 的值修改为你自己的 key,并将 AndroidManifest 中所有 host 改为你依赖项目的包名(此处指 app Module 的包名)
6、接下来操作代码,首先初始化SDK。在app的module下创建一个App继承Application,注意App需要在AndroidManifest中进行配置。
publicclassAppextendsApplication {
@Override
publicvoidonCreate() {
super.onCreate();
/** * 初始化融云 */
RongIM.init(this);
}
}
7、连接融云,在MainActivity中调用RongIM.connect()连接融云。里面第一个参数Token写你自己的,不会找的位置在下面。
package zjy.com.ry_demo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import io.rong.imkit.RongIM;
import io.rong.imlib.RongIMClient;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String Token = "LSDo7ffzhD04QfZqBJT7Oj7cg91tTL03pDgfo38wS4dLAREh+MMBWcDFWAHXdNS6uJB1/OXf0hkm3v843Eis0MGlHLKywOTs";
RongIM.connect(Token, new RongIMClient.ConnectCallback() {
@Override
public void onTokenIncorrect() {
}
@Override
public void onSuccess(String s) {
}
@Override
public void onError(RongIMClient.ErrorCode errorCode) {
}
});
}
}
8、集成单聊界面,因为单聊是一个Fragment,所以我们在activity的布局中添加一个fragment,并且在AndroidManifest中添加intent-filter。
package zjy.com.ry_demo;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
public class ConversationActivity extends AppCompatActivity{
private static final String TAG = ConversationActivity.class.getSimpleName();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.conversation);
getSupportActionBar().setTitle("聊天");
getSupportActionBar().setLogo(R.drawable.rc_ac_sd_card_icon);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.mipmap.ic_launcher);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
finish();
return super.onOptionsItemSelected(item);
}
}
9、在Activity中调用RongIM.getInstance().startPrivateChat(MainActivity.this,"123","hello");开启单聊,如下:
package zjy.com.ry_demo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import io.rong.imkit.RongIM;
import io.rong.imlib.RongIMClient;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String Token = "LSDo7ffzhD04QfZqBJT7Oj7cg91tTL03pDgfo38wS4dLAREh+MMBWcDFWAHXdNS6uJB1/OXf0hkm3v843Eis0MGlHLKywOTs";
RongIM.connect(Token, new RongIMClient.ConnectCallback() {
@Override
public void onTokenIncorrect() {
}
@Override
public void onSuccess(String s) {
}
@Override
public void onError(RongIMClient.ErrorCode errorCode) {
}
});
if(RongIM.getInstance()!=null){
RongIM.getInstance().startPrivateChat(MainActivity.this,"12313","llll");
}
}
}
最后在AndroidManifest注册。注意修改host为自己的包名。
<activity android:name=".ConversationActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="zjy.com.ry_demo"
android:pathPrefix="/conversation/"
android:scheme="rong" />
</intent-filter>
</activity>