本文为您介绍Android客户端本机号码校验的集成方法及接口的功能示例。
接入步骤
下载SDK
登录号码认证产品控制台,在概览页面右侧API&SDK区域,单击立即下载,进入API&SDK页面,根据页面提示下载并解压对应SDK。
创建认证方案
您导入项目或调用API接口时,会用到方案Code等参数信息,请先在号码认证产品控制台,创建认证方案,获取方案Code等参数信息。
导入项目
- 设置minSdkVersion和compileSdkVersion版本。 - minSdkVersion:号码认证SDK最低依赖版本为21,创建新项目时minSdkVersion不能低于21。 - compileSdkVersion:号码认证SDK最低依赖版本为30,创建新项目时compileSdkVersion不能低于30。  
- 导入aar产物并添加依赖。 - 在使用号码认证功能的module中引入相关SDK,将3个aar全部导入 - module libs文件夹。 - authsdk是号码认证主aar,实现一键登录及本机号码校验功能; 
- logger组件是authsdk使用的日志组件必须引入依赖; 
- main组件是authsdk使用的基础功能组件必须引入依赖; 
 - 在module下build.gradle文件中找到 - dependencies,添加如下引用:- implementation fileTree(dir: 'libs', include: ['*.aar']) implementation 'androidx.appcompat:appcompat:1.3.1' 
- 创建签名文件。 - 参考studio创建签名文件创建签名文件,此签名文件在创建方案号时使用,签名文件放置在module下,文件名及文件路径无设置要求。 - 以Demo为例,将签名文件放置在 - app/sig-adaptation/debug/文件夹下,则需在module的- build.gradle文件中指向该签名。 
- 查看签名。 - 使用Studio右侧面板,选择Gradle > 项目名称 > 签名文件module > Tasks > android > signingReport,查看签名。  说明 说明- 包签名获取方式如下: - 方式一:上图的下方输出的MD5值移除冒号,将大写字母转换为小写字母即可生成包签名。 
- 方式二:请通过手机终端下载并安装Android App签名获取工具,获取Android App的包签名信息。 
 
添加权限
在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以及手机传递过去