Android客户端接入

更新时间:
复制为 MD 格式

本文为您介绍Android客户端本机号码校验的集成方法及接口的功能示例。

接入步骤

下载SDK

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

创建认证方案

请参见:创建认证方案并获取方案Code

导入项目

  1. 确保您的项目满足以下环境要求:设置minSdkVersioncompileSdkVersion版本。

    1. minSdkVersion:号码认证SDK最低依赖版本为21,创建新项目时minSdkVersion不能低于21。

    2. compileSdkVersion:号码认证SDK最低依赖版本为30,创建新项目时compileSdkVersion不能低于30。

      lQLPJwRrQmTx-IjNAU_NAf-wjoE4EAEBBikEuGvmAQCeAA_511_335.png

  2. 导入aar产物并添加依赖。

    1. 在使用号码认证功能的module中引入相关SDK,将3aar全部导入libs文件夹。

      29

      • auth开头包是号码认证主aar,实现一键登录及本机号码校验功能;

      • logger开头包组件是authsdk使用的日志组件必须引入依赖;

      • main开头包组件是authsdk使用的基础功能组件必须引入依赖。

    2. App模块(通常是 app/build.gradle)的 dependencies 代码块中添加以下依赖:

      implementation fileTree(dir: 'libs', include: ['*.aar'])
      implementation 'androidx.appcompat:appcompat:1.3.1'

      image

添加权限

AndroidMainfest.xml清单文件中添加权限。

  • 必要权限(aar中已申请,用户无需单独配置)

<uses-permission android:name="android.permission.INTERNET" /> <!-- 网络访问 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 检查wifi网络状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 检查网络状态 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <!-- 允许修改网络状态 -->
  • 非必要权限(不配置此权限,不影响使用本机号码校验功能)

<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!--允许访问电话状态-->

完整的功能交互流程请参见本机号码校验交互流程

SDK方法说明

获取认证实例

/**
 *  获取该类的单例实例对象
 * @param context Android上下文建议使用applicationcontext
 * @param tokenListener 需要实现的获取token回调
 *  @return 单例实例对象
 */
public static PhoneNumberAuthHelper getInstance(Context context, TokenResultListener tokenResultListener)

使用示例

TokenResultListener mTokenResultListener = new TokenResultListener() {
    @Override
    public void onTokenSuccess(String s) {
         //token获取成功业务处理
    }

    @Override
    public void onTokenFailed(String s) {
         //token获取失败业务处理
    }
};
PhoneNumberAuthHelper mPhoneNumberAuthHelper = PhoneNumberAuthHelper.getInstance(this, mTokenResultListener);

必调方法:设置SDK密钥(setAuthSDKInfo)

/**
 *  初始化SDK调用参数,App生命周期内调用一次
 *  @param  secretInfo AppID、AppKey、方案号
 */
public void setAuthSDKInfo(String secretInfo)

使用示例

mPhoneNumberAuthHelper.setAuthSDKInfo(secretInfo);

必调方法:本机号码校验获取Token(getVerifyToken)

使用前先调用setAuthListener接口。

/**
     * 获取认证Token
     *
     * @param totalTimeout 超时时间,单位ms
     */
public void getVerifyToken(final int totalTimeout)

使用示例

mPhoneNumberAuthHelper.setAuthListener(mVerifyListener);
mPhoneNumberAuthHelper.getVerifyToken(5000);

选调方法:加速获取本机号码校验Token(accelerateVerify)

/**
     * 加速本机号码校验
     *
     * @param overdueTimeMills 超时时间ms
     * @param listener         结果回调
     */
@AuthNumber
public void accelerateVerify(final int overdueTimeMills, final PreLoginResultListener listener)

使用示例

mPhoneNumberAuthHelper.accelerateVerify(timeout, new PreLoginResultListener() {
    @Override
    public void onTokenSuccess(String vendor) {
        //加速成功业务逻辑处理
    }

    @Override
    public void onTokenFailed(String vendor, String errorMsg) {
      //加速失败业务逻辑处理
    }
});

本机号码校验示例

////1、创建实例
mVerifyListener = new TokenResultListener() {
            @Override
            public void onTokenSuccess(String s) {
               //token获取成功业务处理
            }

            @Override
            public void onTokenFailed(final String s) {
                //token获取失败业务处理
            }
        };
 mPhoneNumberAuthHelper = PhoneNumberAuthHelper.getInstance(getApplicationContext(), mVerifyListener);

//2、环境校验
mPhoneNumberAuthHelper.checkEnvAvailable(PhoneNumberAuthHelper.SERVICE_TYPE_AUTH);

//3.1加速校验
 mPhoneNumberAuthHelper.accelerateVerify(5000, new PreLoginResultListener() {
            @Override
            public void onTokenSuccess(String vendor) {
                //加速成功业务逻辑处理
            }

            @Override
            public void onTokenFailed(String vendor, String errorMsg) {
                 //加速失败业务逻辑处理
            }
        });
//3.2、 获取校验token
mPhoneNumberAuthHelper.setAuthListener(mVerifyListener);
mPhoneNumberAuthHelper.getVerifyToken(timeout);
//4、去自己服务端进行token校验
//开发者自己app的服务端对接阿里号码认证,并提供接口给app调用
//此处调用服务接口将本机号码校验token以及手机传递过去