300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Android(6) 环信sdk实现登录注册功能(第三方通信)

Android(6) 环信sdk实现登录注册功能(第三方通信)

时间:2024-02-10 11:53:58

相关推荐

Android(6) 环信sdk实现登录注册功能(第三方通信)

最近写聊天软件,需要第三方通信实现聊天功能,

前几天研究了极光sdk集成(/qq_38225558/article/details/80456390)

下面再分享一下环信sdk集成

(个人心得:我是个新手,其实集成环信sdk我之前用了接近一个星期参考官方文档,也百度了解了很多,最后集成失败了,,实在是心疼就放弃了环信,接着去学极光sdk的集成,极光弄成功之后再回来继续研究环信的,给我最大的感觉就是我明明按着官方给出的文档一步一步去弄的,反复弄过很多次都失败就懵了,感觉简直是美滋滋,现在极光和环信集成sdk之后,个人觉得不要只看官方给出的文档,要多下载几个demo看看别人是怎么集成的,然后对比官方文档,最后总结写出自己的,要学会将别人写的demo一步一步实现什么功能拆分出来仔细研究弄懂变成自己的东西)

在这里我使用的是官网下载的sdk里面的easeui快速集成,不需要添加libs,也不需要在build.gradle里面添加什么,很方便

@先看看效果是不是自己想要的吧@

第一步:去环信官网下载sdk --> /download/im

第二步:使用android studio导入examples文件夹里面的easeui作为module

导入成功后module的右下方会有图标

(如果module导入失败请参考:/qq_38225558/article/details/80491765)

第三步:添加module作为依赖

我添加之后是报下面的错

这里查看项目添加的module和app的build.gradle里面的minSdkVersion不一致,所以导致错误!

我项目app里面的minSdkVersion是15,module里面的是16,于是修改app里面的版本为16,最后成功

第四步:配置AndroidManifest权限(AppKey对应的value值修改为自己环信注册应用对应的appkey值即可,application name为你后面初始化类名)

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="/apk/res/android"package="com.ied.hxchat"><!--======================================环信============================================--><!-- Required --><uses-permission android:name="android.permission.VIBRATE" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /><uses-permission android:name="android.permission.WAKE_LOCK" /><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /><!--======================================环信============================================--><applicationandroid:name=".application.HXApplication"android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".ui.LoginActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity android:name=".ui.MainActivity"></activity><activity android:name=".ui.RegisterActivity"></activity><!--======================================环信============================================--><!-- 设置环信应用的AppKey --><meta-data android:name="EASEMOB_APPKEY" android:value="1173180507177570#hxchat" /><!-- 声明SDK所需的service SDK核心功能--><service android:name="com.hyphenate.chat.EMChatService" android:exported="true"/><service android:name="com.hyphenate.chat.EMJobService"android:permission="android.permission.BIND_JOB_SERVICE"android:exported="true"/><!-- 声明SDK所需的receiver --><receiver android:name="com.hyphenate.chat.EMMonitorReceiver"><intent-filter><action android:name="android.intent.action.PACKAGE_REMOVED"/><data android:scheme="package"/></intent-filter><!-- 可选filter --><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED"/><action android:name="android.intent.action.USER_PRESENT" /></intent-filter></receiver><!--======================================环信============================================--></application></manifest>

第五步:初始化sdk

package com.ied.hxchat.application;import android.app.Application;import com.hyphenate.chat.EMOptions;import com.hyphenate.easeui.EaseUI;public class HXApplication extends Application{@Overridepublic void onCreate() {super.onCreate();EMOptions options = new EMOptions();// 默认添加好友时,是不需要验证的,改成需要验证,true:自动验证,false,手动验证options.setAcceptInvitationAlways(false);EaseUI.getInstance().init(this, options);}}

第六步:写登录注册代码

LoginActivity.java:

package com.ied.hxchat.ui;import android.content.Intent;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.text.TextUtils;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import com.hyphenate.EMCallBack;import com.hyphenate.chat.EMClient;import com.ied.hxchat.R;public class LoginActivity extends AppCompatActivity implements View.OnClickListener{private EditText edtUsername,edtPassword;private Button btnLogin;private TextView btnRegister;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);initView();}private void initView() {edtUsername = (EditText) findViewById(R.id.edt_username);edtPassword = (EditText) findViewById(R.id.edt_password);btnLogin = (Button) findViewById(R.id.btn_login);btnRegister = (TextView) findViewById(R.id.btn_register);btnLogin.setOnClickListener(this);btnRegister.setOnClickListener(this);}@Overridepublic void onClick(View v) {String username = edtUsername.getText().toString().trim();String password = edtPassword.getText().toString().trim();switch (v.getId()) {case R.id.btn_login:if (TextUtils.isEmpty(username)) {Toast.makeText(getApplicationContext(), "请输入用户名", Toast.LENGTH_SHORT).show();} else if (TextUtils.isEmpty(password)) {Toast.makeText(getApplicationContext(), "请输入密码", Toast.LENGTH_SHORT).show();} else {//登录EMClient.getInstance().login(username,password,new EMCallBack() {//回调@Overridepublic void onSuccess() {runOnUiThread(new Runnable() {public void run() {//登录成功后需要调用EMClient.getInstance().chatManager().loadAllConversations(); 和EMClient.getInstance().groupManager().loadAllGroups();EMClient.getInstance().chatManager().loadAllConversations();EMClient.getInstance().groupManager().loadAllGroups();//以上两个方法是为了保证进入主页面后本地会话和群组都 load 完毕。Log.d("main", "登录聊天服务器成功!");Toast.makeText(getApplicationContext(), "登陆成功", Toast.LENGTH_SHORT).show();startActivity(new Intent(LoginActivity.this, MainActivity.class));}});}@Overridepublic void onProgress(int progress, String status) {}@Overridepublic void onError(int code, String message) {if (code == -1005) {message = "用户名或密码错误";}final String msg = message;runOnUiThread(new Runnable() {public void run() {Log.d("main", "登陆聊天服务器失败!");Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();}});}});}break;case R.id.btn_register:startActivity(new Intent(LoginActivity.this, RegisterActivity.class));break;}}}

RegisterActivity.java

package com.ied.hxchat.ui;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.text.TextUtils;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.Toast;import com.hyphenate.chat.EMClient;import com.hyphenate.exceptions.HyphenateException;import com.ied.hxchat.R;public class RegisterActivity extends AppCompatActivity implements OnClickListener {private ImageView ivBack;private EditText edtUsername,edtPassword;private Button btnRegister;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_register);initView();}private void initView() {ivBack = (ImageView) findViewById(R.id.iv_back);edtUsername = (EditText) findViewById(R.id.edt_username);edtPassword = (EditText) findViewById(R.id.edt_password);btnRegister = (Button) findViewById(R.id.btn_register);btnRegister.setOnClickListener(this);ivBack.setOnClickListener(this);}@Overridepublic void onClick(View v) {final String username = edtUsername.getText().toString().trim();final String password = edtPassword.getText().toString().trim();switch (v.getId()) {case R.id.btn_register:if (TextUtils.isEmpty(username)) {Toast.makeText(getApplicationContext(), "请输入用户名",Toast.LENGTH_SHORT).show();} else if (TextUtils.isEmpty(password)) {Toast.makeText(getApplicationContext(), "请输入密码",Toast.LENGTH_SHORT).show();} else {new Thread(new Runnable() {@Overridepublic void run() {try {EMClient.getInstance().createAccount(username,password);//同步方法runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(RegisterActivity.this,"注册成功请登录",Toast.LENGTH_SHORT).show();}});} catch (HyphenateException e) {runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(RegisterActivity.this,"注册失败",Toast.LENGTH_SHORT).show();}});}}}).start(); }break;case R.id.iv_back:finish();break;}}}

最后附上项目源码:

点击下载源码 密码:6zfr

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。