Android版一键登录SDK开发文档

最近更新时间:2021-12-08 14:13:04

查看PDF

Android v2.3.3 一键登录SDK开发文档

下载SDK及相关文档

请在官网下载最新的SDK包 (包含Demo+SDK+资源包) 点击下载
非开发人员想体验demo,可直接下载apk包到手机 点击下载

⼀.准备⼯作概述

合规性说明前 置 条 件 创建应⽤

快速体验demo 开发环境搭建

⼆.⼀键登录

.初始化

.预取号

.拉起授权⻚

.销毁授权⻚

.授权⻚点击事件监听

.其他API

.置换⼿机号

.授权⻚界⾯修改a.设计规范

b.授权⻚配置

c.添加⾃定义控件d.设置弹窗样式e.设置横竖屏

三.本机认证

.初始化

.本机号校验

.校验⼿机号四.返回码

⼀.准备⼯作

概述

本⽂是⼀键登录SDK_Android
v2.3.3版本的接⼊⽂档,⽤于指导SDK的使⽤⽅法,默认读者已经熟悉 IDE(Eclipse 或者
Android Studio)的基本使⽤⽅法,以及具有⼀定的 Android 编程知识基础。

合规性说明

为了保证您的App顺利通过检测,我们制作了Android统计SDK初始化合规⽅案。合规三步⾛:

1、您需要确保App有《隐私政策》,并且在⽤户⾸次启动App时就弹出《隐私政策》取得⽤户同意。

2、您务必告知⽤户您选择⼀键登录SDK服务,请在《隐私政策》中增加如下参考条款:

“我们的产品为改善注册及登录界⾯⽤户体验,集成第三⽅SDK⼀键登录服务:⼀键登录SDK,⽤于帮助实现⽤户⼀键登录⾏为。为了实现⽹关取号技术,⼀键登录SDK需要获取IP地址、⽹卡(MAC)地

址、国际移动设备识别码(IMEI)、OAID(替代IMEI)、sim卡信息,并会收集⼿机机型、系统类型、系统版本、⽹络环境、⽹关取号报错⽇志数据以提供统计分析服务能⼒,并可提供反欺诈等功能。

3、您务必确保⽤户同意《隐私政策》之后,再初始化⼀键登录SDK。具体初始化步骤详⻅下⽂。

前置条件

  • ⼀键登录SDK⽀持minSdkVersion 16及以上版本

  • ⼀键登录SDK⽀持中国移动3/4G/5G、联通3/4G/5G、电信4G/5G的取号能⼒,在3G⽹络下时延会更⾼

  • ⼀键登录SDK⽀持单数据⽹络/数据⽹络与WiFi⽹络双开,不⽀持单WiFi⽹络

  • 对于双卡⼿机,⼀键登录SDK只对当前流量卡取号,双卡均未开数据流量SDK将会返回错误码

本机号码校验使⽤场景:

⽤户输⼊⼿机号码,通过SDK获取token(通过authenticationRespond获取),服务端携带输⼊的⼿机号码和token

去运营商⽹关进⾏校验(服务端调⽤mobile-validate接⼝),返回的结果时⽤户当前上⽹使⽤的号码与
输⼊的号码是否⼀致。

⼀键登录使⽤场景:

⽤户⽆需输⼊⼿机号码,SDK会拉起授权⻚,⽤户确认授权后,SDK会获取token(通过getOneKeyLoginStatus中获

取),服务端携带token到运营商⽹关获取⽤户当前上⽹使⽤的号码(服务端调⽤mobile-query接

⼝),并返回给APP服务端。

创建应⽤

应⽤的创建流程及APPID的获取,请查看「账号创建」⽂档

注意:如果应⽤有多个包名或签名不同的⻢甲包,须创建多个对应包名和签名的应⽤,否则⻢甲包将报包名或签名校验不通过。

快速体验demo

  • Android压缩包附带的apk⽂件夹中是⼀键登录demo的安装包,可以直接安装到Android⼿机上。并快速体验⼀键登录在您的⼿机上的表现。

  • Android压缩包附带的demo⽂件夹中是⼀键登录的示例⼯程,使⽤Android
    studio打开示例⼯程, 完成以下步骤配置,然后直接运⾏起来测试。

    a.将build⾥⾯的applicationId换成对应的测试包名b.将build⾥⾯的签名配置改成您的签名配置

    c.将初始化appid换成您在⼀键登录平台创建应⽤后⽣成的appid

开发环境搭建

  1. 将开发包拷⻉到⼯程

  2. 将SDK中libs⽬录下的aar包拷⻉到您⼯程的libs⽬录下,如没有该⽬录需新建。

    并在build⽂件的dependencies中添加aar包依赖:

  1. SDK中jniLibs⽬录下的so库复制到您⼯程的jniLibs⽬录下,如没有该⽬录需新建。

    jniLibs所在⽬录结构如下图:

注意:系统默认读取jniLibs⽬录下的so库,如果您的项⽬中在build⾥⾯指定了
jniLibs.srcDirs = [‘libs’],则必须

将so库放到libs⽬录下,否则so库会引⽤不到,导致电信卡预取号报:“result”:80102,“msg”:"预登录

异常"。

SDK提供了多个架构的so库,可根据项⽬需求选择相应的so库。如果您的项⽬只包含某个⽬录,则复制对应⽬
录的so

库,例如,您的项⽬中只有armeabi-v7a⽬录,则只复制jniLibs中的armeabi-v7a⽬录下的so库到您的项⽬。

  1. 配置AndroidManifest.xml⽂件

必要权限:

建议的权限:如果选⽤该权限,需要在预取号步骤前提前动态申请。

建议开发者申请本权限,本权限只⽤于移动运营商在双卡情况下,更精准的获取数据流量卡的运营商类
型,

缺少该权限,存在取号失败概率上升的⻛险。

配置权限说明

权限名称 权限说明 使⽤说明
INTERNET 允许应⽤程序联⽹ ⽤于访问⽹关和认证服务器
ACCESS_WIFI_STATE 允许访问WiFi⽹络状态信息 允许程序访问WiFi⽹络状态信息
ACCESS_NETWORK_STA TE 允许访问⽹络状态 区分移动⽹络或WiFi⽹络
CHANGE_NETWORK_STA TE 允许改变⽹络连接状态 设备在WiFi跟数据双开时, 强⾏切换使⽤数据⽹络
CHANGE_WIFI_STATE 允许改变WiFi⽹络连接状态 设备在WiFi跟数据双开时, 强⾏切换使⽤
READ_PHONE_STATE 允许读取⼿机状态 (可选)获取IMSI⽤于判断双卡和换卡
WRITE_SETTINGS 允许读写系统设置项 电信SDK在6.0系统以下进⾏数据切换⽤到的权限,添加后可增加电信在WiFi+4G下⽹络环境下的取号成功率。6.0系统以上可去除
GET_TASKS 允许应⽤程序访问TASK

在application标签内配置授权登录activity,screenOrientation和theme可以根据项⽬需求⾃⾏修改

  1. <activity

    1. android:name=“com.shlogin.sdk.view.CmccLoginActivity”

      XML

      复制代码

  2. android:configChanges=“keyboardHidden|orientation|screenSize”

    1. android:launchMode=“singleTop” /> 5
  3. <activity-alias

  4. android:name=“com.cmic.sso.sdk.view.LoginAuthActivity”

  5. android:configChanges=“keyboardHidden|orientation|screenSize”

  6. android:launchMode=“singleTop”

  7. android:targetActivity=“com.shlogin.sdk.view.CmccLoginActivity”

  8. android:theme="@style/dialogStyle" />

  9. <activity

  10. android:name=“com.shlogin.sdk.view.OneKeyLoginActivity”

  11. android:configChanges=“keyboardHidden|orientation|screenSize”

  12. android:launchMode=“singleTop”

  13. android:screenOrientation=“behind” 17 />

  14. <activity

  15. android:name=“com.shlogin.sdk.view.PrivacyProtocolActivity”

  16. android:configChanges=“keyboardHidden|orientation|screenSize”

  17. android:launchMode=“singleTop”

  18. android:screenOrientation=“behind” 23 />

配置Android9.0对http协议的⽀持两种⽅式:

⽅式⼀:

示例代码:

⽅式⼆:

运营商个别接⼝为http请求,对于全局禁⽤Http的项⽬,需要设置Http⽩名单。以下为运营商http接⼝域名:

cmpassport.com;*.10010.com,119.3.251.136

混淆规则:

  1. AndResGuard资源压缩过滤:

通过上⾯的⼏个步骤,⼯程就配置完成了,接下来就可以在⼯程中使⽤⼀键登录SDK进⾏开发了。

⼆.⼀键登录

初始化

调⽤SDK其他任何⽅法前,请确保已调⽤过初始化,否则会失败并返回未初始化。

⽅法原型

参数描述

参数 类型 说明
context Context 传ApplicationContext对象
appId String 应⽤的appId
initListener InitListene r 初始化回调监听,getInitStatu是该监听唯⼀的抽象⽅法,即void getInitStatus(int code, String result)

getInitStatus(int code, String
result)⽅法返回参数分为外层code和result,含义如下:

字段 类型 含义
code int code为1022:成功;其他:失败
result String 返回信息

注意:初始化不要放在申请权限⽅法内,否则⽤户拒绝权限会造成后续⽅法没有回调。

  1. 预取号

建议在判断当前⽤户属于未登录状态时使⽤,已登录状态⽤户请不要调⽤该⽅法

  • 建议在执⾏拉取授权登录⻚的⽅法前,提前⼀段时间调⽤预取号⽅法,中间最好有2-3秒的缓冲

    (因为预取号⽅

    法需要1~3s的时间取得临时凭证),⽐如放在启动⻚的onCreate()⽅法中,或者app启动的

    application中的

    onCreate()⽅法中去调⽤,不建议放在⽤户登录时和拉取授权登录⻚⽅法⼀起调⽤,会影响⽤户体验和成功
    率。

请勿频繁的多次调⽤、请勿与拉起授权登录⻚同时和之后调⽤。

  • 避免⼤量资源下载时调⽤,例如游戏中加载资源或者更新补丁的时候要顺序执⾏

⽅法原型:

参数描述

参数 类型 说明
getPhoneInfoListen er GetPhoneInf oListener 预取号回调监听,getPhoneInfoStatus是该监听中唯⼀的抽象⽅法,即void getPhoneInfoStatus(int code, String result)

⽅法返回参数分为外层code和result,含义如下:

字段 类型 含义
code Int code为1022:成功;其他:失败
result String 返回信息
  1. 拉起授权⻚

调⽤拉起授权⻚⽅法后将会调起运营商授权⻚⾯。已登录状态请勿调⽤ 。

  • 每次调⽤拉起授权⻚⽅法前均需先调⽤授权⻚配置⽅法,否则授权⻚可能会展示异常。

    • 1秒之内只能调⽤⼀次,⽽且必须保证上⼀次拉起的授权⻚已经销毁再调⽤,否则SDK会返回请求频
      繁。

⽅法原型:

参数描述

字段 类型 含义
isFinish boolean 点击授权⻚⼀键登录按钮有回调时是否⾃动销毁授权⻚: true:⾃动销毁 false:不⾃动销毁,开发者需主动调⽤销毁授权⻚⽅法进⾏授权⻚销毁操作
openLoginAu thListener OpenLoginAu thListener 授权⻚是否拉起成功监听,getOpenLoginAuthStatus是该接⼝中唯 ⼀的抽象⽅法,即 void getOpenLoginAuthStatus(int code,String result)
oneKeyLogin Listener OneKeyLogin Listener 点击授权⻚登录按钮及返回键监听,getPhoneCode是该接⼝中唯⼀的抽象⽅法,即void getOneKeyLoginStatus(int code,String result) (code等于1011为点击返回键(包括物理返回键),其他均为点击⼀键 登录按钮的回调)

getOpenLoginAuthStatus(int
code,String result)⽅法返回参数分为外层code和result,含义如下:

字段 类型 含义
code int code为1000:授权⻚成功拉起其他:失败
result String 返回信息

getOneKeyLoginStatus(int code,String
result)⽅法返回参数分为外层code和result,含义如下:

字段 类型 含义
code int code为1000:成功 其他:失败 (包含点击返回键 code=1011)
result String 返回信息

含义如下:

字段 类型 含义
token String ⽤来和后台置换⼿机号。⼀次有效。
  1. 销毁授权⻚

  2. 授权⻚⾯⾃动销毁

    1. 在授权登录⻚⾯,当⽤户主动点击左左上⻆返回按钮时,返回码为1011,SDK将⾃动销毁授权⻚;

    2. 安卓
      SDK,当⽤户点击⼿机的硬件返回键(相当于取消登录),返回码为1011,SDK将⾃动销毁授权

  1. 当⽤户设置⼀键登录或者其他⾃定义控件为⾃动销毁时,得到回调后,授权⻚⾯会⾃动销毁

  2. 授权⻚⼿动销毁

当设置⼀键登录为⼿动销毁时,点击授权⻚⼀键登录按钮成功获取token不会⾃动销毁授权⻚,请务必在回调中处理完⾃⼰的逻辑后⼿动调⽤销毁授权⻚⽅法。

  1. 当设置⾃定义控件为⼿动销毁时,请务必在回调中处理完⾃⼰的逻辑后⼿动调⽤销毁授权⻚⽅法。

⽅法原型

示例代码

注意:点击授权⻚的返回按钮或者⾃定义控件时,请不要回调或者返回到的界⾯主线程中做耗时操作,
避免堵塞授权⻚销毁,导致再次调⽤拉起授权⻚时返回请求频繁。

  1. 授权⻚点击事件监听

需要对授权⻚点击事件监听的⽤户,可调⽤此⽅法监听授权⻚点击事件,⽆此需求可以不写。

⽅法原型

参数描述

参数 类型 说明
actionListener ActionLis tener 点击事件回调监听,ActionListener是该监听唯⼀的抽象⽅法,即 void ActionListener(int code, String result,String operator)

ActionListners(int type,int code,String message)⽅法返回参数含义如下:

字段 类型 含义
type int type=1 ,隐私协议点击事件type=2 ,checkbox点击事件type=3 ,⼀键登录按钮点击事件
code int type=1 ,隐私协议点击事件,code分为0,1,2,3(协议⻚序号) type=2 ,checkbox点击事件,code分为0,1(0为未选中,1 为选中) type=3 ,⼀键登录点击事件,code分为0,1(0为协议未勾选时,1为协议勾选时)
message String 点击事件的详细信息
  1. 其他API

  2. 设置授权⻚loading显示隐藏(授权⻚拉起之后调⽤)

⽅法原型

参数描述

参数 类型 说明
visibility boolean 点击⼀键登录后,授权⻚展示的loading view(设置true 显示; false隐藏)

  1. 设置授权⻚协议复选框是否选中(授权⻚拉起之后调⽤)

    ⽅法原型

参数描述

参数 类型 说明
isChecked boolean 设置协议复选框是否选中(设置true 选中;false 未选中)

  1. 置换⼿机号

    当⼀键登录外层code为1000时,您将获取到返回的参数,请将这些参数传递给后端开发⼈员,并参考

服务端」⽂档来实现获取⼿机号码的步骤。

  1. 授权⻚界⾯修改

  2. 设计规范

注意:开发者不得通过任何技术⼿段,将授权⻚⾯的隐私栏、品牌露出内容隐藏、覆盖,对于接⼊⼀键 登录SDK并上线的应⽤,我⽅和运营商会对授权⻚⾯做审查,如果有出现未按要求设计授权⻚⾯,我⽅有权将应⽤的登录功能下线。

  1. 授权⻚配置

调⽤该⽅法可实现对三⽹运营商授权⻚⾯个性化设计,每次调⽤拉起授权⻚⽅法前必须先调⽤该⽅法, 否则授权界⾯

会展示异常,具体实现可参考demo示例的ConfigUtils配置类。(三⽹界⾯配置内部实现逻辑不同,请务必使⽤移

动、联通、电信卡分别测试三⽹界⾯)

⽅法原型

参数说明

参数 参数类型 说明
portraitYanUICo nfig LoginUIConfig 竖屏⻚⾯样式配置对象,开发者在 LoginUIConfig.java类中调 ⽤对应的⽅法配置授权⻚中对应的元素(该参数不能传null, 否则展示默认⻚⾯)
landYanUIConfi g LoginUIConfig 横屏⻚⾯样式主题配置对象,开发者在 LoginUIConfig.java类中调⽤对应的⽅法配置授权⻚中对应的元素(针对指定屏幕 ⽅向的,该参数传null)

LoginUIConfig.java配置元素说明

授权⻚背景配置三选⼀,⽀持图⽚,gif图,视频

⽅法 参数类型 说明
setAuthBGImgPath Drawable 设置授权⻚背景图⽚
setAuthBgGifPath String 只⽀持本地gif图,需要放置到drawable⽂件夹中。传⼊图 ⽚名称即可。
setAuthBgVideoPath String ⽀ 持 本 地 路 径 如 :“android.resource://” + context.getPackageName() + “/” + R.raw.testvideo" ⽀持⽹络路径:“https://xxx”

设置授权⻚进出场动画

⽅法 参数类型 说明
setActivityTranslateA nim string 参数1:进场动画传xml⽂件名即可参数2:退场动画传xml⽂件名即可

授权⻚状态栏

⽅法 参数类型 说明
setStatusBarColor int 设置状态栏背景颜⾊
setLightColor boolean 设置状态栏字体颜⾊是否为⽩⾊
setStatusBarHidden boolean 设置状态栏是否隐藏
setVirtualKeyTranspar ent boolean 设置虚拟键是否透明

授权⻚字体

⽅法 参数类型 说明
setTextSizeIsdp boolean 设置字体是否以dp为单位

授权⻚导航栏

⽅法 参数类型 说明
setFullScreen boolean 设置是否全屏显示(true:全屏;false:不全屏)默认不全屏
setNavColor int 设置导航栏背景颜⾊(默认透明)
setNavText string 设置导航栏标题⽂字
setNavTextColor int 设置导航栏标题⽂字颜⾊
setNavTextSize int(单位sp) 设置导航栏标题⽂字⼤⼩
setNavReturnImgPath Drawable 设置导航栏返回按钮图标
setNavReturnImgHidd en boolean 设置导航栏返回按钮是否隐藏(true:隐藏;false:不隐藏)
setNavReturnBtnWidth int(单位dp) 设置导航栏返回按钮宽度(默认25dp)
setNavReturnBtnHeigh t int(单位dp) 设置导航栏返回按钮⾼度(默认25dp)
setNavReturnBtnOffse tRightX int(单位dp) 设置导航栏返回按钮距离屏幕右侧X偏移
setNavReturnBtnOffse tX int(单位dp) 设置导航栏返回按钮距离屏幕左侧X偏移
setNavReturnBtnOffse tY int(单位dp) 设置导航栏返回按钮距离屏幕上侧Y偏移
setAuthNavHidden boolean 设置导航栏是否隐藏(true:隐藏;false:不隐藏)
setAuthNavTransparen t boolean 设置导航栏是否透明(true:透明;false:不透明)
setNavTextBold boolean 设置导航栏字体是否加粗(true:加粗;false:不加粗)

授权⻚logo

⽅法 参数类型 说明
setLogoImgPath Drawable 设置logo图⽚
setLogoWidth int(单位dp) 设置logo宽度
setLogoHeight int(单位dp) 设置logo⾼度
setLogoOffsetY int(单位dp) 设置logo相对于标题栏下边缘y偏移
setLogoOffsetBottom Y int(单位dp) 设置logo相对于屏幕底部y偏移
setLogoHidden boolean 设置logo是否隐藏(true:隐藏;false:不隐藏)
setLogoOffsetX int(单位dp) 设置logo相对屏幕左侧X偏移

授权⻚号码栏

⽅法 参数类型 说明
setNumberColor int 设置号码栏字体颜⾊
setNumFieldOffsetY int(单位dp) 设置号码栏相对于标题栏下边缘y偏移
setNumFieldOffsetBot tomY int(单位dp) 设置号码栏相对于屏幕底部y偏移
setNumFieldWidth int(单位dp) 设置号码栏宽度
setNumFieldHeight int(单位dp) 设置号码栏⾼度
setNumberSize int(单位sp) 设置号码栏字体⼤⼩
setNumFieldOffsetX int(单位dp) 设置号码栏相对屏幕左侧X偏移
setNumberBold boolean 设置号码栏字体是否加粗(true:加粗;false:不加粗)

授权⻚登录按钮

⽅法 参数类型 说明
setLogBtnText string 设置登录按钮⽂字
setLogBtnTextColor int 设置登录按钮⽂字颜⾊
setLogBtnImgPath Drawable 设置授权登录按钮图⽚
setLogBtnOffsetY int(单位dp) 设置登录按钮相对于标题栏下边缘Y偏移
setLogBtnOffsetBotto mY int(单位dp) 设置登录按钮相对于屏幕底部Y偏移
setLogBtnTextSize int(单位sp) 设置登录按钮字体⼤⼩
setLogBtnHeight int(单位dp) 设置登录按钮⾼度
setLogBtnWidth int(单位dp) 设置登录按钮宽度
setLogBtnOffsetX int(单位dp) 设置登录按钮相对屏幕左侧X偏移
setLogBtnTextBold boolean 设置登录按钮字体是否加粗(true:加粗;false:不加粗)

授权⻚隐私栏

⽅法 参数类型 说明
setAppPrivacyOne string(链接) 设置开发者隐私条款1名称和URL 参数1:名称 参数2:url
setAppPrivacyTwo string(链接) 设置开发者隐私条款2名称和URL 参数1:名称 参数2:url
setAppPrivacyThree string(链接) 设置开发者隐私条款3名称和URL 参数1:名称 参数2:url
setPrivacySmhHidden boolean 设置协议名称是否显示书名号《》,默认显示书名号
(true:不显示;false:显示)
setPrivacyTextSize int(单位sp) 设置隐私栏字体⼤⼩
setAppPrivacyColor int 设置隐私条款名称颜⾊参数1:基础⽂字颜⾊参数2 : 协议⽂字颜⾊
setPrivacyOffsetBotto mY int(单位dp) 设置隐私条款相对于授权⻚⾯底部下边缘y偏移
setPrivacyOffsetY int(单位dp) 设置隐私条款相对于授权⻚⾯标题栏下边缘y偏移
setPrivacyOffsetX int(单位dp) 设置隐私条款相对屏幕左侧X偏移
setPrivacyOffsetGravit yLeft boolean 设置隐私条款⽂字多⾏显示时是否左对⻬(true:左对 ⻬;false:居中)
setPrivacyState boolean 设置隐私条款的CheckBox是否选中(true:选中; false:未选中)
setUncheckedImgPath Drawable 设置隐私条款的CheckBox未选中时图⽚
setCheckedImgPath Drawable 设置隐私条款的CheckBox选中时图⽚
setCheckBoxHidden boolean 设置隐私条款的CheckBox是否隐藏(true:隐藏; false:不隐藏)
setCheckBoxWH int(单位dp) 设置checkbox的宽⾼,包含两个参数:1.宽 2.⾼(默认宽⾼13dp)
setcheckBoxOffsetXY (2.3.1.6及之后版本新增⽅法) int(单位dp) 设置checkbox在协议框⽗控件中的位置,包含两个参数:1.左偏移量 2.上偏移量(不设置默认居中)
setCheckBoxMargin int(单位dp) 设置checkbox热点局域范围,包含四个参数:1.向左扩 ⼤ 2.向上扩⼤ 3.向右扩⼤ 4.向下扩⼤(默认各10dp)
setPrivacyText String 设置隐私条款名称外的⽂字,包含五个参数,参数示例 (红⾊ 字体为传⼊参数): 同意《***》和《***》、《***》、《***》并授权获取本机号码 参数1: 同意参数2:和参数3:、 参数4:、
参数5:并授权获取本机号码
setPrivacyTextBold boolean 设置协议栏字体是否加粗(true:加粗;false:不加粗)
setPrivacyCustomToas t Toast 未勾选时,⾃定义点击⼀键登录的Toast提示
setPrivacyCustomToas tText String 未勾选协议时toast提示⽂字
setPrivacyNameUnderl ine boolean 协议是否显示下划线(true:显示;false:不显示)
setOperatorPrivacyAtL ast boolean 运营商协议是否为最后⼀个显示(true:最后显示; false:不在最后显示)
setPrivacyGravityHoriz ontalCenter boolean 设置隐私协议栏是否居中显示(true:居中;false:居左)

授权⻚slogan(**提供认证服务)

⽅法 参数类型 说明
setSloganTextColor int 设置slogan⽂字颜⾊
setSloganTextSize int(单位sp) 设置slogan⽂字字体⼤⼩
setSloganOffsetY int(单位dp) 设置slogan相对于标题栏下边缘y偏移
setSloganHidden boolean 设置slogan是否隐藏(true:隐藏;false:不隐藏)
setSloganOffsetBottom Y int(单位dp) 设置slogan相对屏幕底部Y偏移
setSloganOffsetX int(单位dp) 设置slogan相对屏幕左侧X偏移
setSloganTextBold boolean 设置slogan⽂字字体是否加粗(true:加粗;false: 不加粗)

授权⻚loading

⽅法 参数类型 说明
setLoadingView ViewGroup 设置⾃定义loading

授权⻚相对控件设置(指定在登录按钮和协议栏之间)

⽅法 参数类型 说明
setRelativeCustomVie w View 设置⾃定义布局
boolean 点击布局是否需要销毁授权⻚:true销毁 false不销毁
int(单位dp) 布局左间距
int(单位dp) 距登录按钮的上边距
int(单位dp) 布局右边距
int(单位dp) 距协议栏的下边距
CustomInterfac e 整个view的点击事件,内部的⼦view点击事件需⾃⾏实现

协议⻚导航栏

⽅法 参数类型 说明
setPrivacyActivityTranslateAn im String 参数1:进场动画传xml⽂件名即可参数2:退场动画传xml⽂件名即可
setPrivacyStatusBarHidden boolean 协议⻚是否隐藏状态栏
setPrivacyStatusBarColor int 协议⻚状态栏颜⾊
setPrivacyLightColor boolean 协议⻚状态栏⽂字颜⾊是否为亮⾊
setPrivacyTitleArray String[] 协议⻚标题名称,不设置默认展示授权⻚对应的协议名称
setPrivacyNavColor int 设置协议⻚导航栏背景颜⾊
setPrivacyNavTextBold boolean 设置协议⻚导航栏标题⽂字是否加粗(true:加粗;false:不加粗)
setPrivacyNavTextColor int 设置协议⻚导航栏标题⽂字颜⾊
setPrivacyNavTextSize int(单位sp) 设置协议⻚导航栏标题⽂字⼤⼩
setPrivacyNavReturnImgPath Drawable 设置协议⻚导航栏返回按钮图标
setPrivacyNavReturnImgHidd en boolean 设置协议⻚导航栏返回按钮是否隐藏(true:隐藏;false:不隐藏)
setPrivacyNavReturnBtnWidt h int(单位dp) 设置协议⻚导航栏返回按钮宽度
setPrivacyNavReturnBtnHeig ht int(单位dp) 设置协议⻚导航栏返回按钮⾼度
setPrivacyNavReturnBtnOffse tRightX int(单位dp) 设置协议⻚导航栏返回按钮距离屏幕右侧X偏移
setPrivacyNavReturnBtnOffse tX int(单位dp) 设置协议⻚导航栏返回按钮距离屏幕左侧X偏移
setPrivacyNavReturnBtnOffse tY int(单位dp) 设置协议⻚导航栏返回按钮距离屏幕上侧Y偏移

授权⻚遮盖层

⽅法 参数类型 说明
setDialogDimAmount float 授权⻚遮盖层灰度设置范围是(0~1)

隐私协议提示弹框

⽅法 参数类型 说明
addCustomPrivacyAlertVie w view 添加授权⻚上显示隐私协议弹框

a.控件X偏移如果不设置默认居中。

添加⾃定义控件

调⽤该⽅法可实现在授权⻚添加⾃定义控件。

⽅法原型

参数说明

参数 参数类型 说明
view(必填) View ⾃定义控件对象
isFinish(必填) boolean 是否需要销毁授权⻚:true销毁 false不销毁
type(必填) boolean 设置⾃定义控件的位置: true为授权⻚导航栏 false为授权⻚导航栏以下空⽩处
customInterface CustomInterface ⾃定义控件监听
  1. 设置弹窗样式

调⽤该⽅法可实现将授权⻚设置成弹窗样式。

⽅法原型

参数说明

参数 参数类型 说明
isdialogTheme(必填) boolean 是否⽤弹窗样式:true 弹窗样式 false ⾮弹窗样式
dialogWidth(必填) int(单位dp) 授权⻚弹窗宽度
dialogHeight(必填) int(单位dp) 授权⻚弹窗⾼度
dialogX int(单位dp) 授权⻚弹窗X偏移量(以屏幕中⼼为原点)
dialogY int(单位dp) 授权⻚弹窗Y偏移量(以屏幕中⼼为原点)
isDialogBottom boolean 授权⻚弹窗是否贴于屏幕底部: true:显示到屏幕底部,dialogY参数设置将⽆效false:不显示到屏幕底部,以dialogY参数为准

注意:设置弹窗效果背景的透明度需要在Manifest.xml⾥⾯配置授权界⾯样式样式示例:

  1. 为授权界⾯的activity设置弹窗theme主题

  2. <activity

    1. android:name=“com.shlogin.sdk.view.CmccLoginActivity”

      Java

      复制代码

  3. android:configChanges=“keyboardHidden|orientation|screenSize”

    1. android:launchMode=“singleTop”

    2. android:screenOrientation=“behind”

    3. android:theme="@style/Theme.ActivityDialogStyle" 7 />

      8

      9 <activity-alias

  4. android:name=“com.cmic.sso.sdk.activity.LoginAuthActivity”

  5. android:configChanges=“keyboardHidden|orientation|screenSize”

  6. android:launchMode=“singleTop”

  7. android:screenOrientation=“behind”

  8. android:targetActivity=“com.shlogin.sdk.view.CmccLoginActivity”

  9. android:theme="@style/Theme.ActivityDialogStyle" 16 />

  10. <activity

  11. android:name=“com.shlogin.sdk.view.OneKeyLoginActivity”

  12. android:configChanges=“keyboardHidden|orientation|screenSize”

  13. android:launchMode=“singleTop”

  14. android:screenOrientation=“behind”

  15. android:theme="@style/Theme.ActivityDialogStyle" 23 />

  16. 设置theme主题的style样式

注意:如果需要触摸弹窗外部销毁授权⻚,style的parent请使⽤系统dialog相关主题。

设置横竖屏

在manifest⽂件中,指定授权⻚activity的screenOrientation即可

注意:只有全屏不透明的activity才能指定⽅向,否则在8.0系统版本上会报 Only
fullscreen opaque

activities can request orientation

即:弹框或者透明主题,授权⻚不能指定⽅向。如需指定⽅向,可以指定授权⻚前个⻚⾯的⽅向,授权

⻚设置跟随前个界⾯⽅向,即: android:screenOrientation=“behind”

三.本机认证

注:本机认证同免密登录,需要初始化,本机认证、免密登录可共⽤初始化,两个功能同时使⽤时,只需调⽤⼀次初始化即可。

  1. 初始化

同SDK使⽤说明–>初始化

本机号校验

在初始化执⾏之后调⽤,本机号校验界⾯需⾃⾏实现,可以在多个需要校验的⻚⾯中调⽤。

⽅法原型:

参数描述:

参数 类型 说明
authenticationExecuteList ener(必填) AuthenticationExe cuteListener 本 机 号 校 验 回 调 监 听 器 , 需 要 调 ⽤ 者 ⾃ ⼰ 实 现 ; AuthenticationExecuteListener 是接⼝中的本机号校验参数回调接⼝,authenticationRespond是该接 ⼝中唯⼀的抽象⽅法,即 void authenticationRespond(int code,String result)

示例代码:

authenticationRespond(int code,String
result)⽅法返回参数分为外层code和result,含义如下:

字段 类型 含义
code int code为1000:成功其他:失败
result String 返回信息

当外层code为1000时,result的返回为

含义如下:

字段 类型 含义
token String ⽤来和后台校验⼿机号。⼀次有效。
  1. 校验⼿机号

当本机号校验外层code为2000时,您将获取到返回的参数,请将这些参数传递给后端开发⼈员,并参 考「服务端」⽂档来实现校验本机号的步骤

四.返回码

返回码 返回码描述
1000 ⼀键登录获取token成功
1001 运营商通道关闭
1002 运营商信息获取失败,请结合result查看具体失败原因
1003 ⼀键登录获取token失败,请结合result查看具体失败原因
1007 ⽹络请求失败,请结合result查看具体失败原因
1011 点击返回,⽤户取消免密登录
1014 SDK内部异常,请结合result查看具体失败原因
1016 APPID为空
1019 其他错误,请结合result查看具体失败原因
1022 ⽹络初始化、预取号成功
1023 初始化、预取号失败,请结合result查看具体失败原因
1031 请求过于频繁
1032 ⽤户禁⽤
1000 本机号校验获取token成功
2003 本机号校验返回失败,请结合result查看具体失败原因

特殊说明:

关于接口是否用蜂窝网络调用

1.移动卡:预取号成功过,以后都可以纯wifi取号,不限次数

2.联通、电信卡:预取号成功过,只有第一次可以纯WiFi取号,取号成功过一次之后预取号就失效了

如果想每次都相同,可以在清理预取号缓存;

OneKeyLoginManager.getInstance().clearScripCache(getApplicationContext())

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈