Android v2.3.3 一键登录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
开发环境搭建
将开发包拷⻉到⼯程
将SDK中libs⽬录下的aar包拷⻉到您⼯程的libs⽬录下,如没有该⽬录需新建。
并在build⽂件的dependencies中添加aar包依赖:
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库到您的项⽬。
建议的权限:如果选⽤该权限,需要在预取号步骤前提前动态申请。
建议开发者申请本权限,本权限只⽤于移动运营商在双卡情况下,更精准的获取数据流量卡的运营商类
型,
缺少该权限,存在取号失败概率上升的⻛险。
配置权限说明
权限名称 | 权限说明 | 使⽤说明 |
---|---|---|
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可以根据项⽬需求⾃⾏修改
<activity
android:name=“com.shlogin.sdk.view.CmccLoginActivity”
XML
复制代码
android:configChanges=“keyboardHidden|orientation|screenSize”
<activity-alias
android:name=“com.cmic.sso.sdk.view.LoginAuthActivity”
android:configChanges=“keyboardHidden|orientation|screenSize”
android:launchMode=“singleTop”
android:targetActivity=“com.shlogin.sdk.view.CmccLoginActivity”
android:theme="@style/dialogStyle" />
<activity
android:name=“com.shlogin.sdk.view.OneKeyLoginActivity”
android:configChanges=“keyboardHidden|orientation|screenSize”
android:launchMode=“singleTop”
android:screenOrientation=“behind” 17 />
<activity
android:name=“com.shlogin.sdk.view.PrivacyProtocolActivity”
android:configChanges=“keyboardHidden|orientation|screenSize”
android:launchMode=“singleTop”
android:screenOrientation=“behind” 23 />
配置Android9.0对http协议的⽀持两种⽅式:
⽅式⼀:
示例代码:
⽅式⼆:
运营商个别接⼝为http请求,对于全局禁⽤Http的项⽬,需要设置Http⽩名单。以下为运营商http接⼝域名:
通过上⾯的⼏个步骤,⼯程就配置完成了,接下来就可以在⼯程中使⽤⼀键登录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 | 返回信息 |
建议在执⾏拉取授权登录⻚的⽅法前,提前⼀段时间调⽤预取号⽅法,中间最好有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 | 返回信息 |
每次调⽤拉起授权⻚⽅法前均需先调⽤授权⻚配置⽅法,否则授权⻚可能会展示异常。
⽅法原型:
参数描述
字段 | 类型 | 含义 |
---|---|---|
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 | ⽤来和后台置换⼿机号。⼀次有效。 |
销毁授权⻚
授权⻚⾯⾃动销毁
在授权登录⻚⾯,当⽤户主动点击左左上⻆返回按钮时,返回码为1011,SDK将⾃动销毁授权⻚;
安卓
SDK,当⽤户点击⼿机的硬件返回键(相当于取消登录),返回码为1011,SDK将⾃动销毁授权
当⽤户设置⼀键登录或者其他⾃定义控件为⾃动销毁时,得到回调后,授权⻚⾯会⾃动销毁
授权⻚⼿动销毁
⽅法原型
示例代码
注意:点击授权⻚的返回按钮或者⾃定义控件时,请不要回调或者返回到的界⾯主线程中做耗时操作,
避免堵塞授权⻚销毁,导致再次调⽤拉起授权⻚时返回请求频繁。
⽅法原型
参数描述
参数 | 类型 | 说明 |
---|---|---|
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 | 点击事件的详细信息 |
其他API
设置授权⻚loading显示隐藏(授权⻚拉起之后调⽤)
参数描述
参数 | 类型 | 说明 |
---|---|---|
visibility | boolean | 点击⼀键登录后,授权⻚展示的loading view(设置true 显示; false隐藏) |
参数描述
参数 | 类型 | 说明 |
---|---|---|
isChecked | boolean | 设置协议复选框是否选中(设置true 选中;false 未选中) |
置换⼿机号
当⼀键登录外层code为1000时,您将获取到返回的参数,请将这些参数传递给后端开发⼈员,并参考
授权⻚界⾯修改
设计规范
会展示异常,具体实现可参考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 | ⾃定义控件监听 |
调⽤该⽅法可实现将授权⻚设置成弹窗样式。
⽅法原型
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
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⾥⾯配置授权界⾯样式样式示例:
为授权界⾯的activity设置弹窗theme主题
<activity
android:name=“com.shlogin.sdk.view.CmccLoginActivity”
Java
复制代码
android:configChanges=“keyboardHidden|orientation|screenSize”
android:launchMode=“singleTop”
android:screenOrientation=“behind”
android:theme="@style/Theme.ActivityDialogStyle" 7 />
8
9 <activity-alias
android:name=“com.cmic.sso.sdk.activity.LoginAuthActivity”
android:configChanges=“keyboardHidden|orientation|screenSize”
android:launchMode=“singleTop”
android:screenOrientation=“behind”
android:targetActivity=“com.shlogin.sdk.view.CmccLoginActivity”
android:theme="@style/Theme.ActivityDialogStyle" 16 />
<activity
android:name=“com.shlogin.sdk.view.OneKeyLoginActivity”
android:configChanges=“keyboardHidden|orientation|screenSize”
android:launchMode=“singleTop”
android:screenOrientation=“behind”
android:theme="@style/Theme.ActivityDialogStyle" 23 />
注意:如果需要触摸弹窗外部销毁授权⻚,style的parent请使⽤系统dialog相关主题。
在manifest⽂件中,指定授权⻚activity的screenOrientation即可
注意:只有全屏不透明的activity才能指定⽅向,否则在8.0系统版本上会报 Only
fullscreen opaque
⻚设置跟随前个界⾯⽅向,即: android:screenOrientation=“behind”
三.本机认证
同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 | ⽤来和后台校验⼿机号。⼀次有效。 |
四.返回码
返回码 | 返回码描述 |
---|---|
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())
文档内容是否对您有帮助?
评价建议不能为空
非常感谢您的反馈,我们会继续努力做到更好!