华为帐号服务学习笔记(三):10分钟完成Authorization Code模式客户端Demo开发
Demo开发准备
1、 安装Android Studio 3.5及以上版本;
2、 安装JDK 1.8 及以上;
3、 使用Android SDK Platform 19及以上;
4、 使用Gradle 4.6及以上;
5、 在华为开发者联盟注册成为华为开发者,如已注册,请跳过此步骤;
运行环境配置
之前按照华为帐号的官方指导试过demo开发,发现前期接入华为开发者联盟的各种步骤有点繁琐,各种界面来回切换,后来在Android Studio上发现HMS提供了一个IDE插件,可以帮忙快速集成。本次文章主要就介绍通过这个IDE插件来快速创建一个华为帐号demo。
如果想自己手动按照步骤创建帐号的demo,可以直接查看这个官方指导:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/dev-process-0000001050443773
IDE插件安装
这个工具叫HMS Toolkit,后来发现华为官方也有介绍,大家有兴趣的可以去它们主页了解下:https://developer.huawei.com/consumer/cn/huawei-toolkit/
安装插件,直接在Android Studio里面,点击“File > Settings > Plugins” ,搜索“HMS”找到HMS Toolkit就可以了,点击安装然后重启Android Studio。
创建android项目
在开发应用前,你得本地有一个Android项目,已有Android项目的可忽略。
步骤 1 打开Android Studio软件,点击“File > New > New Project” ,按自己需求选择,我这里选择的“Empty Activity”,点击“Next”。
步骤 2 在“Configure Your Project”界面填入项目名称、包名、项目存储位置、项目语言以及最低SDK版本,然后点击“Finish”完成项目创建。
配置AppGallery Connect
为了接入华为,我们还需要在AppGallery Connect中创建应用,并做些基本设置。
步骤 1 使用华为帐号登录AppGallery Connect(https://developer.huawei.com/consumer/cn/service/josp/agc/index.html)。要是没注册,直接按照页面指导完成帐号注册就行,然后选择“我的项目”。
步骤 2 在我的项目页面点击“添加项目”。
步骤 3 输入个名字作为项目名称,点击“确定”。
步骤 4 项目创建成功后会自动进入“项目设置”页面,在这里找到“添加应用”并点击。
如果你本来就有项目并且已经有应用了,直接展开页面顶部的应用选择区域,选择“添加应用”。
步骤 5 在“添加应用”页面中填写应用信息,特别注意平台和包名的,尤其是包名要和前面创建的android项目的包名一致。
选择平台:选择“Android”。
应用包名:需要与您正在开发的应用的包名保持一致。
配置完成后,后面的一些操作都可以忽略了,直接去Android Studio操作就行,安装的IDE插件可以帮忙进行设置。
在Android Studio上为项目配置华为AGC和华为帐号
步骤 1 在Android Studio中,菜单栏选择“HMS > Configuration Wizard”。如果你没登录AppGallery Connect,这个工具会帮忙自动打开浏览器并提示登录。
步骤 2 登录后,在Configuration Wizard界面可以选择团队名称、对应的工程模块、Integrated Kits(选择Account Kit)和证书类型,点击“Generate”生成SHA256证书指纹,然后点击“Next”。
选择团队名称和对应的工程模块之后,Toolkit会自动检测AGC上是否有对应的应用。若有报错,根据界面点击“Link”到AGC上检查是否已创建应用。如果没有,就创建个新的应用(这个就是前面“配置AppGallery Connect”那步),然后点击“Retry”。
关于证书类型说明如下:
Use your certificate:直接使用你自己创建的证书生成SHA256证书指纹,这种是用来应用发布的时候。关于证书的指导可参见Android证书签名(https://developer.android.com/studio/publish/app-signing#generate-key)。
Use Android debug certificate:选择Android自带的调试证书生成SHA256证书指纹,这种方式仅用于应用调试场景。我们这就是个Demo,为了简单我直接选的这个。
点击“Generate”可自动生成证书指纹,如果生成失败,检查证书信息是否正确,确保证书信息和指纹相匹配,或者根据生成证书指纹指导手工生成指纹,然后填写到指纹信息框内。
插件会自动对Account Kit的使用环境进行环境配置检查,我暂时还没遇到过失败的情况。全部检查项通过后直接点击“Go to coding assistant”按钮,就可以进入Account Kit的页面去选择调用的接口了。
通过Coding Assistant集成Authorization Code模式登录帐号
步骤 1 在Android Studio中,选择“HMS > Coding Assistant”,然后在Kit列表中点击“Account Kit”。
步骤 2 鼠标放到“Signing In With an ID(Authorization Code)”这个行上,拖拽下,把这行拖放到代码区域。
鼠标释放后,会弹出新增代码片段的选择框,直接点击“OK”,可以看到会生成Authorization Code登录的相关Activity文件和xml布局文件,并且AndroidManifest.xml、工程build.gradle和模块build.gradle都有一些新增信息。具体文件有哪些变化看后面的登录详解。
步骤 3 打开“AndroiManifest.xml”文件,将应用初始调用的Activity替换成步骤2生成的Activity,这样我们的APP就可以主动调用新加的Activity了。
这样,一个帐号登录的Demo就完成了。
Demo的运行调试,可以在自己的设备或远程真机里运行查看。
编译、调试
使用远程真机运行
步骤 1 在Android Studio的菜单栏中选择“HMS > Cloud Debugging”或者在工具栏点击如下图标。
步骤 2 远程真机界面,可以根据分辨率、Android版本那些来筛选要远程调试的真机。
这里有个坑,深圳地域的真机不知道什么原因,是不能进入“设置”的,这导致帐号的Demo跑起来后无法拉起登录页面。强烈建议使用非深圳地域的真机进行测试。
步骤 3 在菜单栏中点击 (Run按钮)或 (Debug按钮),在远程真机中运行或调试App。
步骤 4 进入运行的项目,点击“AUTHORIZATIONCODE MODE SIGNIN”按钮,拉起华为帐号登录页面,这个页面就是通过Authorization Code方式登录的华为帐号。
使用本地真机运行
在菜单栏中点击 (Run按钮)或 (Debug按钮),在本地真机中运行或调试App。
真机运行结果示意如下:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一篇文章带你了解JavaScript中的变量,作用域和内存问题
1 在JavaScript中的变量分别区分为两种: 一种为基本类型值,一种为应用类型值。 基本类型值指的是简单的数据段 引用类型值为可能由多个值组成的对象 引用类型的值是保存在内存中的对象,JavaScript不允许直接操作对象的内存空间,实际上操作对象的引用而不是实际对象。 vardada=newObject();undefineddada.name="dada";"dada"console.log(dada.name); VM158:1dadaundefined varda1="da1";undefinedda1.age=12;12console.log(da1.age);VM272:1undefinedundefined 基本类型的值添加属性,是不管用的,只能给引用类型的值动态地添加属性,才是有用的。 2 复制变量值 就是从一个变量向另一个变量复制 基本类型值 和 引用类型值 基本类型的值添加属性,是不管用的,只能给引用类型的值动态地添加属性,才是有用的。2复制变量值就是从一个变量向另一个变量复制基本类型值和引用类型值 da1中保存的值是12,使用da1的值来初始化da2时,da...
- 下一篇
flea-frame-db使用之基于EntityManager实现JPA分表的数据库操作
基于EntityManager实现JPA分表的数据库操作 本文采用 EclipseLink的JPA实现,相关JPA接入使用请移步我的另外几篇博文。 首先还是讨论一下,实现JPA分表的增删改查操作,我们需要做什么: 分表规则定义(即从主表到分表的转换实现) 分表操作实现(即EntityManager根据分表规则操作具体分表) 1. EntityManager持久化操作 常用接口方法如下: // 新增 void persist(Object var1); // 更新 <T> T merge(T var1); // 删除 void remove(Object var1); // 查找 <T> T find(Class<T> var1, Object var2); 下面来分析一下上述增删改查的接口方法实现: org.eclipse.persistence.internal.jpa.EntityManagerImpl persist入参 : 实体对象实例出参 : 无org.eclipse.persistence.internal.sessions.UnitOf...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- 设置Eclipse缩进为4个空格,增强代码规范
- Mario游戏-低调大师作品
- MySQL8.0.19开启GTID主从同步CentOS8
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16