环信使用简介(注册登陆模块)
最近公司项目用到环信,搜了搜相关的博客发现比较少,于是乎本人本着乐于助人的精神,把本人参照[环信][#6]官网的帮助文档,做了个小demo,希望能对大家有所帮助。本人的demo主要有以下几个功能
- 注册
- 登陆
- 发送文字信息
- 发送图片信息
- 消息接收
- 聊天记录的读取
初始化环信(建议参照官方文档)
1.先从官网上注册一个账号
[ 环信官网]
2.在开发者中心新建一个应用
3.添加权限
接下来直接上代码(注册和登陆模块)
public class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EMChat.getInstance().init(this);
EMChat.getInstance().setDebugMode(true);
}
}
public class MainActivity extends BaseActivity {
private String userName;
private String passWord;
private EditText userN;
private EditText userP;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
userN = ((EditText)findViewById(R.id.username));
userP = ((EditText)findViewById(R.id.password));
}
public void btnClick(View view){
switch (view.getId()){
case R.id.bt_log:
userName = userN.getText().toString().trim();
passWord = userP.getText().toString().trim();
if(userName!=null&&!"".equals(userName)&&passWord!=null&&!"".equals(passWord)){
log(userName,passWord);
}
break;
case R.id.bt_regist:
userName = userN.getText().toString().trim();
passWord = userP.getText().toString().trim();
if(userName!=null&&!"".equals(userName)&&passWord!=null&&!"".equals(passWord)){
regist(userName, passWord);
}
break;
}
}
private Handler mLoghHndler = new Handler(){
@Override
public void handleMessage(Message msg) {
if (msg.what == 1){
Toast.makeText(getApplicationContext(),"登陆成功!",Toast.LENGTH_SHORT).show();
}else if (msg.what == 2){
Toast.makeText(getApplicationContext(),"登陆失败!",Toast.LENGTH_SHORT).show();
}
}
};
private Handler mRegistHndler = new Handler(){
@Override
public void handleMessage(Message msg) {
if (msg.what == 1){
Toast.makeText(getApplicationContext(),"注册成功!",Toast.LENGTH_SHORT).show();
}else if (msg.what == 2){
Toast.makeText(getApplicationContext(),"注册失败!",Toast.LENGTH_SHORT).show();
}
}
};
private void log(String userName,String passWord){
EMChatManager.getInstance().login(userName, passWord, new EMCallBack() {
@Override
public void onSuccess() {
Log.i("log log:","success");
Message message = new Message();
message.what = 1;
mLoghHndler.sendMessage(message);
}
@Override
public void onError(int i, String s) {
Message message = new Message();
message.what = 2;
mLoghHndler.sendMessage(message);
}
@Override
public void onProgress(int i, String s) {
}
});
}
private void regist(final String userName, final String passWord){
new Thread(new Runnable() {
@Override
public void run() {
try {
EMChatManager.getInstance().createAccountOnServer(userName,passWord);
Message message = new Message();
message.what = 1;
mRegistHndler.sendMessage(message);
} catch (EaseMobException e) {
e.printStackTrace();
Message message = new Message();
message.what = 2;
mRegistHndler.sendMessage(message);
}
}
}).start();
}
}
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal|center_vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp"
android:gravity="center_vertical"
>
<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:hint="请输入您的账号"
/>
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:hint="请输入您的密码"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/bt_log"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="btnClick"
android:layout_height="wrap_content"
android:text="登陆"
/>
<Button
android:id="@+id/bt_regist"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="btnClick"
android:layout_height="wrap_content"
android:text="注册"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>