秒验集成指南
开发工具:Android Studio
集成方式:Gradle 在线集成
安卓版本支持:minSdkVersion 19
集成前准备注册账号使用秒验 SDK 之前,需要先在 MobTech 官网注册开发者账号并注册应用获取 Mob 提供的 AppKey 和 AppSecret,详情可以点击查看创建应用流程
提交审核一键登录是运营商提供的能力,在使用秒验 SDK 之前,您需要在 Mob 开发者后台提交秒验审核,详情可以点击查看秒验审核流程
秒验 SDK 流程图下载.png
集成配置秒验 SDK 提供了两种集成方式,您可根据需要进行选择。需要注意的是,两种集成方式在功能上无任何区别,仅为集成方式不同,选取其中一种即可。
Gradle 集成配置 SDK 地址 Android Studio 的代码库配置方式随 Gradle 插件的不同版本有所不同。请根据您当前 Gradle 插件的版本,选择相应的配置方式。
【7.0 及以上版本】打开项目级“settings.gradle”文件,配置 Maven 仓地址,注意修改 repositoriesMode 为 RepositoriesMode.PREFER_SETTINGS。pluginManagement {repositories {gradlePluginPortal()google()mavenCentral()maven {url "https://mvn.mob.com/android"}}}dependencyResolutionManagement {// repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)repositories {gradlePluginPortal()google()mavenCentral()maven {url "https://mvn.mob.com/android"}}}打开 Android Studio 项目级 build.gradle 文件,配置 MobSDK 插件地址 buildscript {dependencies {// 增加 MobSDK 插件配置 classpath "com.mob.sdk:MobSDK2:+"// 增加 google services 插件配置,用于集成 FCM,不集成 FCM 可不配置 classpath 'com.google.gms:google-services:4.3.14'}}
plugins {id 'com.android.application' version 'x.x.x' apply falseid 'com.android.library' version 'x.x.x' apply false}【7.0 以下版本】打开 Android Studio 项目级 build.gradle 文件。在 allprojects ->repositories 里面配置 maven 仓地址。allprojects {repositories {maven {url "https://mvn.mob.com/android"}}}在 buildscript->repositories 中配置 maven 仓地址。buildscript {repositories {maven {url "https://mvn.mob.com/android"}}}在 buildscript->dependencies 中配置 AppGallery Connect 插件地址 buildscript {dependencies {//增加 MobSDK 插件配置 classpath "com.mob.sdk:MobSDK2:+"}}添加依赖打开应用级的 build.gradle 文件。添加 mob 插件配置。请根据实际情况选择:方式一:在“com.android.application” 插件下一行添加如下配置。apply plugin: 'com.mob.sdk'方式二:在“plugins”中添加如下配置。plugins {id 'com.android.application'id 'com.mob.sdk'}在文件末尾添加 mob 配置代码 MobSDK {appKey "替换为 MobTech 官方申请的 appkey"appSecret "替换为 MobTech 官方申请的 appkey 对应的 appSecret"SecVerify {}}配置标识在 gradle.properties 中添加代码
MobSDK.spEdition=IZNAOGoogle Play 版本如果您的应用需要上架 Google 商店,请务必使用 Google Play 版本。
在 gradle.properties 中添加代码,如已添加 MobSDK.spEdition 相关配置,则修改值为 GPP 即可。
MobSDK.spEdition=GPP 至此,Gradle 集成方式已经完成。
离线集成获取 SDK 在进行离线集成之前,请先联系在线客服获取离线 SDK。
添加 SDK 把获取到的离线 SDK 包放入项目中的 libs 文件夹内。
引入 SDK 通过上一步添加 SDK 至项目中后,SDK 包还未进行引用,需要添加下方所示引入代码后才可使用。
implementation fileTree(dir: 'libs', include: ['.aar', '.jar'])配置清单文件复制下方提供的清单文件代码至您的项目 AndroidManifest.xml 文件中。
<manifest<application
</manifest>至此,离线集成方式已经完成。
http 协议支持由于 Android 9.0 开始,系统强制使用 https 请求,运营商暂不支持 https 取号,因此需要关闭 9.0 系统的强制 https 功能,请在 manifest 的 Application 节点增加 usesCleartextTraffic 设置,如下所示:
<applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:usesCleartextTraffic="true">指定 so 库(可选)电信免密登录能力使用了 so 库,开发者可根据自身应用支持的 cpu 架构,选择使用不同 so 库。
// 根据需要选择对应的.so 库 android {defaultConfig {applicationId '您的 ApplicationId'ndk {// 选择要添加的对应 cpu 类型的 so 库,多个 abi 以“,”分隔。abiFilters 'armeabi-v7a'// 可指定的值为 'armeabi-v7a', 'arm64-v8a', 'armeabi', 'x86', 'x86_64',}}}添加混淆代码秒验 SDK 已经做了混淆处理,再次混淆会导致不可预期的错误,请在您的混淆脚本中添加如下的配置,跳过对秒验 SDK 的混淆操作
-ignorewarnings
#关闭某个运营商功能时编译通不过可以加上下面的代码 #-dontpreverify
for SecVerify
-keep class com.mob.**{*;}
for CTCC
-keep class cn.com.chinatelecom.account.**{*;}
for CUCC
-dontwarn com.unicom.online.account.shield.**-keep class com.unicom.online.account.shield.** {;}-keep class com.sdk.**{;}
for CMCC
-dontwarn com.cmic.gen.sdk.**-keep class com.cmic.gen.sdk.{*;}-keep class com.cmic.sso.sdk.{*;}
for CUCCXW
-keep class com.unicom.xiaowo.account.shield.**{*;}另如有用到 AndResGuard 混淆资源问题,请在 whiteList 中添加如下混淆配置:
秒验 R.anim.sec_verify_,R.drawable.sec_verify_,R.layout.sec_verify_,R.string.sec_verify_,R.color.sec_verify_,R.dimen.sec_verify_,R.style.sec_verify_,R.drawable.customized_toggle_,R.drawable.customized_checkbox_selector,R.drawable.dialog_loading,移动 R.anim.umcsdk_,R.drawable.umcsdk_,R.string.umcsdk_,R.dimen.umcsdk_,电信 R.anim.ct_account_,R.drawable.ct_account_,R.string.ct_account_*,R.style.CtAuthDialog,
"R.anim.sec_verify_","R.drawable.sec_verify_","R.layout.sec_verify_","R.string.sec_verify_","R.color.sec_verify_","R.dimen.sec_verify_","R.style.sec_verify_","R.drawable.customized_toggle_","R.drawable.customized_checkbox_selector","R.drawable.dialog_loading","R.id.sec_verify_","R.id.common_dialog_","R.anim.umcsdk_","R.drawable.umcsdk_","R.string.umcsdk_","R.dimen.umcsdk_","R.anim.ct_account_","R.drawable.ct_account_","R.string.ct_account_","R.style.CtAuthDialog","R.id.ct_account_","R.id.ct_auth_*","R.string.service_name" ,"R.style.Dialog_Common","R.id.progress_bar" ,"R.drawable.loading"隐私授权启动业务为保证您的 App 在集成 MobSDK 之后能够满足工信部相关合规要求,您应确保 App 安装首次冷启动且取得用户阅读您《隐私政策》授权之后,调用 MobSDK.submitPolicyGrantResult 回传隐私协议授权结果。
反之,如果用户不同意您 App《隐私政策》授权,则不能调用 MobSDK.submitPolicyGrantResult 回传隐私协议授权结果。 请参考秒验 SDK 隐私政策
通用方案/**
com.mob.MobSDK.class
回传用户隐私授权结果
@param isGranted 用户是否同意隐私协议/public static void submitPolicyGrantResult(boolean isGranted)增加 App 数据采集主动控制器方案/*
com.mob.MobSDK.class
回传用户隐私授权结果
@param isGranted App 数据采集主动控制器子类实例
@param isGranted 用户是否同意隐私协议*/
public static void submitPolicyGrantResult(MobCustomController cont, boolean isGranted);示例代码
注:submitPolicyGrantResult 是 MobSDK 的业务起点。调用位置开发者可以自己指定,只需在使用 SDK 功能之前调用即可,强烈建议开发者在终端用户点击应用隐私协议弹窗同意按钮后调用。
App 数据采集主动控制器用来限制 MobSDK 采集并提供可选的数据维度和扩展功能。因相关信息的不收集将会对其对应的功能造成影响,请开发者结合业务实际需要进行合理配置。秒验 SDK 扩展业务功能设置可参考: https://www.mob.com/wiki/detailed?wiki=657&id=78 ,其它 App 数据采集主动控制器的配置方法可参考:https://www.mob.com/wiki/detailed?wiki=664&id=714
MobSDK.submitPolicyGrantResult(new MobCustomController() {// TODO 重写控制器}, true);
// 或者
MobSDK.submitPolicyGrantResult(true);
版权声明: 本文为 InfoQ 作者【MobTech袤博科技】的原创文章。
原文链接:【http://xie.infoq.cn/article/6a2f3b03cd0446d25522a1bf7】。文章转载请联系作者。
评论