首先 去环信官网注册账号,并且根据文档进行app关联操作
安装sdk
//环信客服SDKimplementation 'com.hyphenate:kefu-easeui-android:latest.release'//或者 compile 'com.hyphenate:kefu-easeui-android:1.1.9r2'//EaseUI中 头像获取用到了glide,请添加glide库implementation 'com.github.bumptech.glide:glide:4.7.1' //其他版本也可以implementation 'com.easemob:kefu-sdk:1.1.9r2'
初始化环信
在MyApplication 的onCreate()中
ChatClient.Options options = new ChatClient.Options();options.setAppkey("***#***");//必填项,appkey获取地址:,“管理员模式 > 渠道管理 > 手机APP”页面的关联的“AppKey”options.setTenantId("******");//必填项,tenantId获取地址:,“管理员模式 > 设置 > 企业信息”页面的“租户ID”ChatClient.getInstance().init(this, new ChatClient.Options().setConsoleLog(true));// Kefu SDK 初始化if (!ChatClient.getInstance().init(this, options)){return;}// Kefu EaseUI的初始化UIProvider.getInstance().init(this);//后面可以设置其他属性
最好将用户注册放在服务器端进行
ChatClient.getInstance().register(“账号”, “密码”), new Callback(){@Overridepublic void onSuccess() {}@Overridepublic void onError(int code, String error) {}@Overridepublic void onProgress(int progress, String status) {}});
创建ChatAcActivity.class
import android.graphics.Color;import android.os.Build;import android.support.v7.app.ActionBar;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import com.hyphenate.helpdesk.easeui.ui.ChatFragment;import R;public class ChatAcActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_chat_ac);ChatFragment chatFragment = new ChatFragment();chatFragment.setArguments(getIntent().getExtras());getSupportFragmentManager().beginTransaction().add(R.id.container, chatFragment).commit();View view = getWindow().getDecorView();view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);//得到当前界面的装饰视图if(Build.VERSION.SDK_INT >= 21) {View decorView = getWindow().getDecorView();//设置让应用主题内容占据状态栏和导航栏int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LAYOUT_STABLE;decorView.setSystemUiVisibility(option);//设置状态栏和导航栏颜色为透明getWindow().setStatusBarColor(Color.TRANSPARENT);getWindow().setNavigationBarColor(Color.TRANSPARENT);}//隐藏标题栏ActionBar actionBar = getSupportActionBar();actionBar.hide();}}
资源文件
activity_chat_ac.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><FrameLayoutandroid:id="@+id/container"android:layout_width="match_parent"android:layout_height="match_parent" /></LinearLayout>
拉起客服聊天时调用
这是测试时候图省事这么写的 不建议学我
if (ChatClient.getInstance().isLoggedInBefore()) {Intent intent2 = new IntentBuilder(getContext()).setTargetClass(ChatAcActivity.class).setTitleName("客服")//这是传到聊天界面的客服昵称,.setServiceIMNumber("*****") //获取地址:“管理员模式 > 渠道管理 > 手机APP”页面的关联的“IM服务号”.build();startActivity(intent2);} else {ChatClient.getInstance().login(sp.getString("userName",null),sp.getString("password",null), new Callback(){@Overridepublic void onSuccess() {if (ChatClient.getInstance().isLoggedInBefore()) {Intent intent2 = new IntentBuilder(getContext()).setTargetClass(ChatAcActivity.class).setTitleName("客服")//这是传到聊天界面的客服昵称,.setServiceIMNumber("*****") //获取地址:“管理员模式 > 渠道管理 > 手机APP”页面的关联的“IM服务号”.build();startActivity(intent2);}else{}}@Overridepublic void onError(int code, String error) {if (ChatClient.getInstance().isLoggedInBefore()) {Intent intent2 = new IntentBuilder(getContext()).setTargetClass(ChatAcActivity.class).setTitleName("客服")//这是传到聊天界面的客服昵称,.setServiceIMNumber("*****") //获取地址:“管理员模式 > 渠道管理 > 手机APP”页面的关联的“IM服务号”.build();startActivity(intent2);}else{}}@Overridepublic void onProgress(int progress, String status) {if (ChatClient.getInstance().isLoggedInBefore()) {Intent intent2 = new IntentBuilder(getContext()).setTargetClass(ChatAcActivity.class).setTitleName("客服")//这是传到聊天界面的客服昵称,.setServiceIMNumber("*****") //获取地址:“管理员模式 > 渠道管理 > 手机APP”页面的关联的“IM服务号”.build();startActivity(intent2);}else{}}});}