1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 安卓集成网易云信SDK实现登录功能

安卓集成网易云信SDK实现登录功能

时间:2020-08-25 18:45:41

相关推荐

安卓集成网易云信SDK实现登录功能

通过集成实现登录,通过网易云信官网自带的控制台可以实现账号注册,不再赘述。其实开发者手册上写的很明白,可以先对照着看看。

https://doc./docs/TM5MzM5Njk/zU4NzUxNjI?platformId=60002

首先,在整个工程的 build.gradle 文件中,配置 repositories,使用 jcenter 或者 maven ,二选一即可,如下:

allprojects {repositories {jcenter() // 或者 mavenCentral()}}

再是根据自己项目的需求,添加不同的依赖,我的依赖如下

dependencies {implementation fileTree(dir: 'libs', include: '*.jar')// 添加依赖。注意,版本号必须一致。// 基础功能 (必需)implementation 'ease.nimlib:basesdk:8.7.2'// 聊天室需要implementation 'ease.nimlib:chatroom:8.7.2'// 通过云信来集成小米等厂商推送需要implementation 'ease.nimlib:push:8.7.2'// 超大群需要implementation 'ease.nimlib:superteam:8.7.2'// 全文检索插件implementation fileTree(dir: 'libs', include: ['*.jar'])implementation 'ease.nimlib:lucene:8.7.2'implementation 'androidx.appcompat:appcompat:1.1.0'implementation 'com.google.android.material:material:1.1.0'implementation 'androidx.constraintlayout:constraintlayout:1.1.3'implementation 'androidx.legacy:legacy-support-v4:1.0.0'implementation files('libs\\universal-image-loader-1.9.4-with-sources.jar')// implementation project(path: ':uikit')testImplementation 'junit:junit:4.+'androidTestImplementation 'com.android.support.test:runner:1.0.2'implementation 'com.google.code.gson:gson:2.8.8'implementation 'de.hdodenhof:circleimageview:2.1.0'androidTestImplementation 'androidx.test.ext:junit:1.1.1'androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'}

在 AndroidManifest.xml 中加入以下配置(请将 ease.nim.demo 替换为自己的包名):

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="/apk/res/android"package="ease.nim.demo"><!-- 权限声明 --><!-- 访问网络状态--><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/><!-- 外置存储存取权限 --><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!-- 多媒体相关 --><uses-permission android:name="android.permission.CAMERA"/><uses-permission android:name="android.permission.RECORD_AUDIO"/><!-- Android11:V8.6.1及之后的版本不需要;其他:V4.4.0及之后的版本不需要 --><uses-permission android:name="android.permission.READ_PHONE_STATE"/><!-- 控制呼吸灯,振动器等,用于新消息提醒 --><uses-permission android:name="android.permission.FLASHLIGHT" /><uses-permission android:name="android.permission.VIBRATE" /><!-- 8.0+系统需要--><uses-permission android:name="android.permission.FOREGROUND_SERVICE" /><!-- 下面的 uses-permission 一起加入到你的 AndroidManifest 文件中。 --><permissionandroid:name="ease.nim.demo.permission.RECEIVE_MSG"android:protectionLevel="signature"/><uses-permission android:name="ease.nim.demo.permission.RECEIVE_MSG"/><application...><!-- APP key, 可以在这里设置,也可以在 SDKOptions 中提供。如果 SDKOptions 中提供了,则取 SDKOptions 中的值。 --><meta-dataandroid:name="ease.nim.appKey"android:value="key_of_your_app" /><!-- 云信后台服务,请使用独立进程。 --><serviceandroid:name="ease.nimlib.service.NimService"android:process=":core"/><!-- 云信后台辅助服务 --><serviceandroid:name="ease.nimlib.service.NimService$Aux"android:process=":core"/><!-- 云信后台辅助服务 --><serviceandroid:name="ease.nimlib.job.NIMJobService"android:exported="true"android:permission="android.permission.BIND_JOB_SERVICE"android:process=":core"/><!-- 云信监视系统启动和网络变化的广播接收器,保持和 NimService 同一进程 --><receiver android:name="ease.nimlib.service.NimReceiver"android:process=":core"android:exported="false"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED"/><action android:name=".conn.CONNECTIVITY_CHANGE"/></intent-filter></receiver><!-- 云信进程间通信 Receiver --><receiver android:name="ease.nimlib.service.ResponseReceiver"/><!-- 云信进程间通信service --><service android:name="ease.nimlib.service.ResponseService"/><!-- 云信进程间通信provider --><providerandroid:name="ease.nimlib.ipc.NIMContentProvider"android:authorities="ease.nim.demo.ipc.provider"android:exported="false"android:process=":core" /><!-- 云信内部使用的进程间通信provider --><!-- SDK启动时会强制检测该组件的声明是否配置正确,如果检测到该声明不正确,SDK会主动抛出异常引发崩溃 --><providerandroid:name="ease.nimlib.ipc.cp.provider.PreferenceContentProvider"android:authorities="ease.nim.demo.ipc.provider.preference"android:exported="false" /></application></manifest>

然后到这一步基本环境已经部署完毕

然后新建MyApplication完成初始化

public class MyApplication extends Application {/*** 注意:每个进程都会创建自己的Application 然后调用onCreate()方法,* 如果用户有自己的逻辑需要写在Application#onCreate()(还有Application的其他方法)中,一定要注意判断进程,不能把业务逻辑写在core进程,* 理论上,core进程的Application#onCreate()(还有Application的其他方法)只能做与im sdk 相关的工作*/@Overridepublic void onCreate() {// ... your codes// SDK初始化(启动后台服务,若已经存在用户登录信息, SDK 将进行自动登录)。不能对初始化语句添加进程判断逻辑。super.onCreate();NIMClient.init(this,null,null);// NimUIKit.init(this);\}}

下面是登录函数

public void doLogin() {String username = etUsername.getText().toString();String password = etPassword.getText().toString();// System.out.println(username);// System.out.println(password);//if(username==1){LoginInfo info = new LoginInfo(username, password);RequestCallback<LoginInfo> callback =new RequestCallback<LoginInfo>() {@Overridepublic void onSuccess(LoginInfo param) {Log.i("112", "login success");// your codeToast.makeText(MainActivity.this, "登录成功~", Toast.LENGTH_SHORT).show();// SendImage();SharedPreferences.Editor editor=sharedPreferences.edit();editor.putString("username", etUsername.getText().toString());editor.putString("password", etPassword.getText().toString());editor.apply();Intent server = new Intent(MainActivity.this, IMService.class);startService(server);Intent intent = new Intent(MainActivity.this, TitleActivity.class);startActivity(intent);}@Overridepublic void onFailed(int code) {if (code == 302) {Log.i(TAG, "账号密码错误");// your codeToast.makeText(MainActivity.this, "密码错误请重试~", Toast.LENGTH_SHORT).show();} else {// your codeSystem.out.println(code);}}@Overridepublic void onException(Throwable exception) {Toast.makeText(MainActivity.this, "外星电波干扰了服务器QAQ", Toast.LENGTH_SHORT).show();}};//执行手动登录NIMClient.getService(AuthService.class).login(info).setCallback(callback);// }}

完毕,在主界面调用登录函数即可登录。如果有错误或者改进的地方欢迎探讨,谢谢!

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