Android对接指南
交互流程
1、接入说明
(1)接入前请先确认
A. 已申请appId、appSecret。
B. 正确配置包名与签名(签名指纹MD5值)。
(2)选择SDK包,SDK 含有so库,请根据您项目的so目录(若有),选择包含对应ABI目录的aar包。
A. CTAccountSdk_HY_v3.7.x_armeabi.aar ,只包含了armeabi的so库(若您项目无so库或只有armeabi目录,建议使用该aar包);
B. CTAccountSdk_HY_v3.7.x_all.aar,包含多个so库目录(分别armeabi,armeabi-v7a,arm64-v8a,x86,x86_64,请根据您项目so库目录,过滤多余的so库)
2、导入aar包
(1)将AAR包导入到libs目录下
( 2 )在build.gradle配置aar依赖
dependencies { //name为libs目录下.aar文件名称,ext为.aar的扩展名 compile(name: 'CTAccountSdk_v3.6.0_armeabi', ext: 'aar') }
3、配置权限清单
(1) 在AndroidManifest.xml配置权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_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.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.GET_TASKS" />
(2)配置权限说明
权限 | 用途 |
---|---|
INTERNET | 允许应用程序联网 |
CHANGE_NETWORK_STATE | 允许程序改变网络连接状态 |
ACCESS_WIFI_STATE | 允许程序访问WiFi网络状态信息 |
ACCESS_NETWORK_STATE | 允许程序访问联网状态,区分用户设备是移动网络或WiFi |
WRITE_SETTINGS | 允许读写系统设置项 |
GET_TASKS | 允许访问task |
(3)Activity组建配置
<activity android:name="cn.com.chinatelecom.account.sdk.ui.AuthActivity" android:exported="false" android:theme="@style/authActivityTheme" android:screenOrientation="portrait" /> <activity android:name="cn.com.chinatelecom.account.sdk.ui.PrivacyWebviewActivity" android:exported="false" android:theme="@style/authActivityTheme" android:screenOrientation="portrait" />
4、配置混淆规则
在混淆配置文件末尾添加如下:
-keep class cn.com.chinatelecom.account.**{*;}
5.1 初始化SDK
【接口说明】
在使用天翼账号SDK接口之前,必须先调用初始化方法。建议在Application或Activity的onCreate()调用。
【调用示例】
CtAuth.getInstance().init(context, APPID , APPSECRET, false);
【请求参数】
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 上下文环境 |
appId | String | 是 | 向天翼账号平台申请的应用ID |
appSecret | String | 是 | 向天翼账号平台申请的应用密钥 |
isDebugMode | boolean | 是 | 调试模式(上线前需置为false) false:不输出SDK日志 true:输出SDK日志 |
【响应参数】
无
5.2 预登录接口
【接口说明】
使用SDK登录前,需要提前调用预登录接口,获取预登录结果、过期时间戳、运营商类型等信息,其中预登录结果默认有效期为10分钟。
【调用示例】
CtAuth.getInstance().requestPreLogin (null ,new ResultListener() { @Override public void onResult(String result) { Log.i(TAG, "requestPreLogin ---> result : " + result); } });
【请求参数】
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
ctSetting | CtSetting | 否 | 超时时间设置,可传null。 也可传入自定义的ctSetting。传null默认为 CtSetting ctSetting =CtSetting(3000,3000 ,1000); 三个参数分别为连接超时时间、读取超时时间、总超时时间。 |
resultListener | ResultListener | 是 | 预登录回调接口,接口方法onResult(String result)用于接收请求结果。其中result为返回结果json格式字符串。 |
【响应参数】
返回结果result的json格式说明:
参数名 | 类型 | 字段含义 | 说明 |
---|---|---|---|
result | int | 结果码 | 返回参数结果码,0表示成功 |
msg | String | 结果说明 | 结果码对应详细说明 |
data | String | 响应数据 | json格式的响应数据 |
data格式说明:
参数名 | 类型 | 字段含义 | 说明 |
---|---|---|---|
operatorType | String | 运营商标识 | CT电信,CU联通,CM移动,UN其他 |
expiredTime | int | 预登录结果失效时间 | 预登录结果失效时间 |
accessCode | String | 授权码 | 天翼账号授权码(可用于登录/校验,一次性有效,有效期60min) |
5.3 打开登录界面
【接口说明】
使用该接口前,必须先完成调用初始化和预登录接口。该接口用于打开登录界面,用户点击一键登录按钮,将返回登录结果。
(注意:打开登录界面后,需确保该Activity在屏幕的最顶部,由用户点击授权一键登录)
【调用示例】
CtAuth.getInstance().openAuthActivity(context ,authPageConfig,new ResultListener() { @Override public void onResult(String result) { Log.i(TAG, "login ---> result : " + result); } });
【请求参数】
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | |
authPageConfig | AuthPageConfig | 是 | AuthPageConfig为登录界面配置类,用于设置登录界面的布局文件及控件ID,并传入SDK。 详细说明见Demo |
resultListener | ResultListener | 是 | 登录回调接口,接口方法onResult(String result)用于接收请求结果。其中result为返回结果json格式字符串。 |
【响应参数】
返回结果result的json格式说明:
参数名 | 类型 | 字段含义 | 说明 |
---|---|---|---|
result | int | 结果码 | 返回参数结果码,0表示成功 |
msg | String | 结果说明 | 结果码对应详细说明 |
data | String | 响应数据 | json格式的响应数据 |
data格式说明:
参数名 | 类型 | 字段含义 | 说明 |
---|---|---|---|
accessCode | String | 授权码 | 天翼账号授权码,用于获取信息接口传参,默认时效性10分钟 |
authCode | String | 校验码 | 天翼账号校验码,用于获取信息接口传参 |
operatorType | String | 运营商标识 | CT电信,CU联通,CM移动,UN其他 |
expiredTime | int | 失效时间 | 预登录结果失效时间戳 |
5.4 关闭登录界面
【接口说明】
当返回登录结果后,合作方APP可以调用该接口关闭登录界面。
【调用示例】
CtAuth.getInstance().finishAuthActivity();
【请求参数】
无
【响应参数】
无