KB: 121047
·
更新时间:2019-06-17 13:58:30
号码认证服务Android SDK目前主要提供功能:
(1)SDK 版本号
(2)设备是否已开启蜂窝数据网络判断,这个是号码网关认证的前提条件
(3)本机号码 token 预取接口(支持移动,电信,联通三大运营商)
目前提供aar形式。
(1)Number Authenticate SDK 获取
开通服务后,在控制台下载SDK。
将aar拷贝至工程的libs目录下。
(2)混淆keep规则
-keep class android.support.v4.** { *;}-keep class org.json.**{*;}-keep class com.alibaba.fastjson.** {*;}-keep class cn.com.chinatelecom.** {*;}-keep class com.unicom.** {*;}-keep class com.cmic.** {*;} -keep class com.alicom.phonenumberauthsdk.** { *; }
(3)增加fastjson依赖,若已依赖请忽略。
gradle:compile 'com.alibaba:fastjson:1.2.5'maven:<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.5</version></dependency>
lib依赖:直接点击下载。
/* * 函数名:getVersion * 参数:无 * 返回:字符串,sdk版本号 */+ String getVersion();/** * 函数名:getInstance * @param context * @param tokenListener * 返回:PhoneNumberAuthHelper 实例 */public static PhoneNumberAuthHelper getInstance(Context context, TokenResultListener tokenListener)/** * 函数名:init * 参数:⽆ * 返回:InitResult结构 * String simPhoneNumber 从sim卡中读取到的手机号码 * boolean can4GAuth 是否能支持网关认证 */public InitResult init();/** * 函数名:getAuthToken 业务方已知需要认证的号码运营商归属 * 参数:timeout 获取token超时时间* 返回:无,结果通过TokenResultListener回调来返回 */public void getAuthToken(int timeout):
•ret- 返回具体错误内容
1.首先并不能100%读取成功,是否能读取成功,需要用户授予“READ_PHONE_STATE”权限。
2.其次SIM卡有物理写入本机号码,而是否写入本机号码,并不是100%,要看发卡机构是否规范。
3.且从sim卡读取出来的本机号码,仅仅只是在读取成功时,去帮忙用户预填手机号至号码输入框,减少用户输入的交互优化,而且用户也是可以去修改预填的号码。
4.最后无论是否读取成功号码,通过服务端进行号码认证是必不可少的,因为仅仅从sim卡读取手机号码,并不能保证其准确性与真实性。
若出现权限相关问题,请检查APP的权限是否申请正常。正常引用aar,权限会自动merge。若权限没有merge,需要添加如下权限。
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
中国移动支持2G/3G/4G、中国联通支持3G/4G、中国电信支持4G,但2G网络下认证失败率稍高。
注意混淆keep规则在proguard-rules.pro文件的增加
请检查开发的APK的包名和签名,与阿里云后台创建应用的提交的信息是否一致
终端侧的SDK仅仅是通过用户的移动网络获取token,最终判断用户输入的号码是否是本机号码,需要通过应用服务端带上终端侧获取到的token与用户输入的号码,调用云通信服务端提供的认证API,认证的动作是服务端与服务端之间的通信,SDK不能独立完成。
公司名称:上海德诚网联网络技术服务有限公司
客服热线:021-61958165
联系邮箱:wangt@netlink.net.cn
举报邮箱:jubao@netlink.net.cn
地址:上海市闵行区东兰路320号5号楼201室