安卓集成网易云信SDK实现登录功能
通过集成实现登录,通过网易云信官网自带的控制台可以实现账号注册,不再赘述。其实开发者手册上写的很明白,可以先对照着看看。
https://doc.yunxin.163.com/docs/TM5MzM5Njk/zU4NzUxNjI?platformId=60002
首先,在整个工程的 build.gradle 文件中,配置 repositories,使用 jcenter 或者 maven ,二选一即可,如下:
allprojects {repositories {jcenter() // 或者 mavenCentral()}
}
再是根据自己项目的需求,添加不同的依赖,我的依赖如下
dependencies {implementation fileTree(dir: 'libs', include: '*.jar')// 添加依赖。注意,版本号必须一致。// 基础功能 (必需)implementation 'com.netease.nimlib:basesdk:8.7.2'// 聊天室需要implementation 'com.netease.nimlib:chatroom:8.7.2'// 通过云信来集成小米等厂商推送需要implementation 'com.netease.nimlib:push:8.7.2'// 超大群需要implementation 'com.netease.nimlib:superteam:8.7.2'// 全文检索插件implementation fileTree(dir: 'libs', include: ['*.jar'])implementation 'com.netease.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 中加入以下配置(请将 com.netease.nim.demo 替换为自己的包名):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.netease.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="com.netease.nim.demo.permission.RECEIVE_MSG"android:protectionLevel="signature"/><uses-permission android:name="com.netease.nim.demo.permission.RECEIVE_MSG"/><application...><!-- APP key, 可以在这里设置,也可以在 SDKOptions 中提供。如果 SDKOptions 中提供了,则取 SDKOptions 中的值。 --><meta-dataandroid:name="com.netease.nim.appKey"android:value="key_of_your_app" /><!-- 云信后台服务,请使用独立进程。 --><serviceandroid:name="com.netease.nimlib.service.NimService"android:process=":core"/><!-- 云信后台辅助服务 --><serviceandroid:name="com.netease.nimlib.service.NimService$Aux"android:process=":core"/><!-- 云信后台辅助服务 --><serviceandroid:name="com.netease.nimlib.job.NIMJobService"android:exported="true"android:permission="android.permission.BIND_JOB_SERVICE"android:process=":core"/><!-- 云信监视系统启动和网络变化的广播接收器,保持和 NimService 同一进程 --><receiver android:name="com.netease.nimlib.service.NimReceiver"android:process=":core"android:exported="false"><intent-filter><action android:name="android.intent.action.BOOT_COMPLETED"/><action android:name="android.net.conn.CONNECTIVITY_CHANGE"/></intent-filter></receiver><!-- 云信进程间通信 Receiver --><receiver android:name="com.netease.nimlib.service.ResponseReceiver"/><!-- 云信进程间通信service --><service android:name="com.netease.nimlib.service.ResponseService"/><!-- 云信进程间通信provider --><providerandroid:name="com.netease.nimlib.ipc.NIMContentProvider"android:authorities="com.netease.nim.demo.ipc.provider"android:exported="false"android:process=":core" /><!-- 云信内部使用的进程间通信provider --><!-- SDK启动时会强制检测该组件的声明是否配置正确,如果检测到该声明不正确,SDK会主动抛出异常引发崩溃 --><providerandroid:name="com.netease.nimlib.ipc.cp.provider.PreferenceContentProvider"android:authorities="com.netease.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);// }}
完毕,在主界面调用登录函数即可登录。如果有错误或者改进的地方欢迎探讨,谢谢!
安卓集成网易云信SDK实现登录功能相关推荐
- 反向编译了子弹短信的 APK,核心功能为整合网易云信 SDK
坚果 Pro2s 京东开卖两周,评论仅1.1万.TNT 预定数量不足100台.但是8月20日锤子科技的产品发布会上,「子弹短信」火了. 但是这个子弹短信到底好不好用呢?正所谓没有调查就没有发言权,作者 ...
- 反向编译了子弹短信的 APK,核心功能为整合网易云信 SDK?
热文导读 | 点击标题阅读 金九银十跳槽季如何进阶找到合适满意的工作? 15 年没写代码,濒临被裁,50 岁开发者如何绝地求生? 2018 年 8 月面试路:6 天 21 家公司 作者:祥子 原文:h ...
- 网易云信SDK V3.1.0版本发布啦
最近天气渐冷,小伙伴们要注意保暖:有女朋友的抱紧女朋友,没女朋友的就抱紧主机. -from 贴心的云小信 10月26日,网易云信SDK V3.1.0版发布,本次版本主要发布功能为:群组聊天室禁言,聊天 ...
- 集成网易云信实现自定义消息(类似淘宝聊天发送商品信息)
上篇文章,我们整理了网易云信的快速集成过程.有兴趣的小伙伴可以移步到:ios集成网易云信IM功能遇到的坑 .简单的实现一对一聊天界面或者查看最近联系人列表.我们只需直接调用NIMKit里面的NIMSe ...
- 6月2日,网易云信SDK全面支持IPv6
2016年5月初,Apple公司官方发文告知用户,6月1日之后提交的版本,必须支持 IPv6-only 的网络环境.为此,Apple还发布了官方指南告知用户如何兼容 IPv6-only 的环境. 而网 ...
- 网易im即时聊天php怎么接入,网易云信IM即时通讯功能接入方式与流程_如何收费_企业服务汇...
编者按:很多企业在考虑使用网易云信提供的IM即时通讯功能,对于企业应当如何接入该功能.接入方式和流程是怎样的.应当如何收费等不太清楚.企业服务汇通过评测网易云信IM即时通讯功能来告诉你答案. 网易云信 ...
- 【人人开源】集成通过Token认证统一登录功能
[人人开源]集成通过Token认证统一登录功能 后端 https://gitee.com/renrenio/renren-fast 前端 https://gitee.com/renrenio/renr ...
- 网易邮箱发送邮件实现登录功能
网易邮箱发送邮件实现登录功能 0.登录自己的网易云邮箱 1.依赖 <!--邮件--><dependency><groupId>org.springframework ...
- 网易云信SDK V3.2.0版发布啦!
网易云信V3.2.0版升级发布啦!本次版本发布的主要功能有:安卓添加64位支持.安卓接入小米推送.多人白板.多人白板的服务端录制,新增多端会话消息已读未读同步.新增音视频通话未接通状态的抄送.iOS的 ...
最新文章
- Java设计模式百例(番外) - Java的clone
- 本地tomcat的start.bat启动时访问不出现小猫图标
- Winform中实现读取xml配置文件并动态配置DevExpress的RadioGroup的选项
- java 自定义一个容器类
- TensorFlow学习笔记(二十八)CNN的9大模型之AlexNet
- java 字体名字_JAVA:获取系统中可用的字体的名字
- Python —— 深拷贝和浅拷贝
- qq动态页面变方格_腾讯QQ音乐9.7.5正式版更新:「歌手主页个人主页」界面全新改版...
- java ajax传递到action_ajax传值到action,后台取不到值。
- 「leetcode」202. 快乐数:今天你快乐了么?
- java flash_存在漏洞的Java及Flash版本使用者众多
- [16]manjaro安装nvidia驱动
- 汉字编码计算机,计算机汉字编码,computerbased Chinese codings,音标,读音,翻译,英文例句,英语词典...
- C语言房地产销售管理系统,房地产销售管理系统的设计与实现
- 转文:KA波段卫星地面关口站异地备份,规避雨天链路中断
- 敌营十八年Ⅱ虎胆雄心
- 基于sanic打造python web框架
- 写时复制(Copy On Write)
- 【光通信】常见光模块与光纤收发器说明及作用区别
- 客户/供应商主数据批导