Android客户端Demo体验

本文为您介绍短信认证功能Demo的运行步骤及示例代码,帮助您快速了解短信认证功能。Android客户端SDK集成的详细接入步骤及用法,请参见短信认证Android客户端接入

步骤一:下载SDK

登录号码认证产品控制台,在概览页面右侧API&SDK区域,单击立即下载,进入API&SDK页面,根据页面提示下载并解压对应SDK。

步骤二:打开Demo

使用Android Studio IDE,选择Open,选择解压后SDK文件下的Demo文件夹项目载入过程会拉取相关依赖,请耐心等待。

重要

本文使用Android Studio 4.0版本进行演示。如果您使用的是其他的IDE版本,可能会存在构建报错,请按照提示修改对应Gradle版本。使用工具和环境搭建相关可参考准备工作

步骤三:创建RAM用户

创建RAM用户获取AccessKey ID和AccessKey Secret。

步骤四:创建认证方案

登录号码认证服务控制台创建短信认证方案,获取方案Code

查看签名

使用Android Studio右侧面板,Gradle > 项目名称 > 签名文件所在module >Tasks > android > signingReport,查看签名

13

说明

包签名获取方式如下:

  • 方式一:上图的下方输出的MD5值移除冒号,将大写字母转换为小写字母即可生成包签名

  • 方式二:请通过手机终端下载并安装Android App签名获取工具,获取Android App的包签名信息。

查看包名

包名在app/build.gradle文件android.defaultConfig.applicationId属性。

06

步骤五:参数替换

打开module下的build.gradle文件,补充以下字段:

如果您没有短信模板Code,请在号码认证服务控制台添加模板,待模板审核通过后即可获取模板Code

	buildConfigField "String", "ACCESS_KEY_ID", 'AccessKey Id'
	buildConfigField "String", "ACCESS_KEY_SECRET", 'AccessKey Secret'
	buildConfigField "String", "SCENE_CODE", '方案号'
	buildConfigField "String", "SMS_TEMPLATE_CODE", '短信模板Code'
说明

Demo项目直接在客户端发起了OpenAPI的调用,所以需要填入AccessKey ID 和 AccessKey Secret。在实际业务中,请通过服务端集成完成OpenAPI对接。

步骤六:构建及运行

  1. Android系统的手机连接到电脑上并打开USB调试模式

  2. 点击IDE顶部工具菜单image..png,构建并运行项目。

  3. 功能试用。

    说明

    确保您的终端设备已开启SIM卡的移动数据网络(支持中国联通、中国移动的3G网络,但接口耗时会增加)。

    Screenshot_1685370732..png

    上图是Demo项目在手机上的运行效果。

示例代码

初始化SDK

mSmsAuthHelper = new SmsAuthHelper(this, BuildConfig.SCENE_CODE);

设置Token监听回调

 mSmsAuthHelper.setTokenUpdater(new TokenUpdater() {
            @Override
            public Tokens updateToken() {
                //从服务端获取token 该部分为示例伪代码
                Tokens tokens = new Tokens();
                tokens.setExpiredTimeMills("");
                tokens.setBizToken("");
                tokens.setAccessKeyId("");
                tokens.setAccessKeySecret("");
                tokens.setStsToken("");
                return tokens;
            }
        });

获取验证码

 mSmsAuthHelper.sendVerifyCode(countryCode, phoneNumber, new SmsCallback() {
                @Override
                public void onResult(Ret ret) {
                    if (ret.getCode() == ResultCode.CODE_SUCCESS) {
                        mVerifyCodeTimerWidget.setClickable(false);
                        mVerifyCodeTimerWidgetController.startTimer();
                        mSmsToken = ret.getSmsVerifyToken();
                    }else {
                        runOnUiThread(()->{
                            Toast.makeText(MainActivity.this, "验证码发送失败:"+ret.getMsg(), Toast.LENGTH_SHORT).show();
                        });
                    }
                }
            },5000);