乐牛SDK4.0接入说明 修订记录 归档日期 版本 说明 作者 审批人 2016-04-25 V1.0 初稿 李政豪
2016-05-03 V1.0 修改接口 李政豪
2016-06-20 V1.1 3.1版本SDK 李政豪
2016-11-21 V1.2 4.0版本SDK 莫铭锟
乐牛SDK4.0接入说明 11 1.引言 22 1.1适用对象及范围 22 1.2 SDK作用说明 22 2.SDK接入 22 2.1 SDK使用准备 2 2.1.1引用乐牛SDK 22 2.1.2避免对sdk进行混淆 33 2.1.3 拷贝sdk目录assets里面的文件 33 2.1.4 配置AndroidManifest.xml 33 2.2接口说明 5 2.2.1初始化接口 55 2.2.2生命周期接口 5 2.2.3用户接口 7 2.2.4用户信息扩展接口 8 2.2.5退出接口 9 2.2.6支付接口 11 3.常量定义 1212 4.更新指引 1313 1.引言 1.1适用对象及范围 本文档适用于策划人员、系统设计人员、开发工程师和测试工程师阅读。
1.2 SDK作用说明 乐牛SDK为游戏开发者提供登录,支付等接口。
2.SDK接入 2.1 SDK使用准备 2.1.1引用乐牛SDK 将LeNiuSdk-release项目导入到工作空间中,配置游戏项目依赖该项目,如图:
2.1.2避免对sdk进行混淆 假如游戏配置了混淆,需要在混淆配置文件(默认proguard-project.txt)中增加如下代码: -keep class com.leniu.sdk.** { ; } -keepeep class com.leniu.official.* {*; } 2.1.3 拷贝sdk目录assets里面的文件 注意:假如assets目录下没有文件则不需要拷贝 2.1.4 配置AndroidManifest.xml 请从LeNiuSdk-release/AndroidManifest.xml文件中拷贝,以确保最新。以下仅供参考。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<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.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<activity
android:name="com.leniu.official.activity.AccountRegistActivity"
android:configChanges="orientation|screenSize|navigation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name="com.leniu.official.activity.AutoLoginActivity"
android:configChanges="orientation|screenSize|navigation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name="com.leniu.official.activity.BindActivity"
android:configChanges="orientation|screenSize|navigation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name="com.leniu.official.activity.FloatMenuWebViewActivity"
android:configChanges="orientation|screenSize|navigation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name="com.leniu.official.activity.ForgetPasswordActivity"
android:configChanges="orientation|screenSize|navigation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name="com.leniu.official.activity.IndexActivity"
android:configChanges="orientation|screenSize|navigation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name="com.leniu.official.activity.LoginActivity"
android:configChanges="orientation|screenSize|navigation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name="com.leniu.official.activity.MobileRegistActivity"
android:configChanges="orientation|screenSize|navigation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name="com.leniu.official.activity.NoticeDialogActivity"
android:configChanges="orientation|screenSize|navigation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name="com.leniu.official.activity.PyActivity"
android:configChanges="orientation|screenSize|navigation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name="com.leniu.official.activity.WebViewActivity"
android:configChanges="orientation|screenSize|navigation"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name="com.leniu.activity.FloatWebViewActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
<activity
android:name="com.leniu.activity.SplashActivity"
android:screenOrientation="landscape"
android:configChanges="orientation|screenSize|navigation"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name="com.leniu.activity.UpdateDialogActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- 乐牛sdk声明 结束 -->
2.2接口说明 2.2.1初始化接口(必接) 游戏在调用登录之前,需要先调用SDK的初始化接口
初始化接口说明: public void leNiuInit(Context context, AppInfo appInfo, OnInitListener initListener) 完成sdk初始化,appid由乐牛提供。合作商可向乐牛申请。 接口参数 参数 类型 描述 必传 context Context 上下文 是 appInfo AppInfo 存放appid,appsecret 是 initListener OnInitListener 初始化回调函数 是
示例:
2.2.2生命周期接口(必接)
在游戏各个Activity(除闪屏Activity外,一般一个游戏只有一个Activity)生命周期中调用SDK生命周期接口。 生命周期接口说明: public void onCreate(Activity activity) public void onStop(Activity activity) public void onDestroy(Activity activity) public void onResume(Activity activity) public void onPause(Activity activity) public void onStart(Activity activity) public void onRestart(Activity activity) public void onNewIntent(Intent intent) public void onActivityResult(int requestCode, int resultCode, Intent data) 示例:
2.2.3用户接口(必接)
初始化SDK成功之后,可以调用账号登录接口 登录接口说明: public void leNiuLogin(Activity activity) 接口参数 参数 类型 描述 必传 activity Activity 游戏Activity 是
需要登出账号,可调用账号登出接口 登出接口说明: public void leNiuLogout(Activity activity) 接口参数 参数 类型 描述 必传 activity Activity 游戏Activity 是
其中登录,登出成功或失败的回调函数为: public static void setOnUserListener(OnUserListener onUserListener)
接口参数 参数 类型 描述 必传 onUserListener OnUserListener 回调接口 是
OnUserListener 接口说明:
登录成功:public void onLoginSuccess(String account, String unionUid, String loginToken); 其中的属性: account 账号名(不一定唯一) union_uid 用户唯一ID login_token CP服务端用于登录验证
登录失败:public void onLoginFailure(int errorCode, String errorMsg); errorCode 为错误码,errorMsg 为错误消息
账号登出成功:public void onLogout();
以上,示例代码:
2.2.4用户信息扩展接口(必接)
部分渠道需要收集玩家角色信息,所以每次登录游戏后创建角色,角色升级,进入游戏,都需要调用用户信息扩展接口进行玩家信息收集 public void setRoleData(Context context, GameRoleBean gameRole)接口参数 参数 类型 描述 必传 context Context 上下文 是 gameRole GameRoleBean 角色信息 是 其中GameRoleBean中的setType方法,type的定义为:1 创角, 2 升级, 3 进入服务器
示例:
2.2.5退出接口(必接) 在游戏退出时,需要调用退出接口 public void LeNiuExit(Context context, OnExitListener onExitListener)接口参数: 参数 类型 描述 必传 context Context 上下文 是 onExitListener OnExitListener 退出回调 是 示例:
2.2.6支付接口(必接) 在调用支付接口之前,请先确保已经调用用户信息扩展接口,否则可能造成部分渠道支付不正常的问题。 支付接口为: public void leNiuCharge(final Context context, final String orderId, final String goodName, final long amount, finalfinal String serverNo, final String roleName, final String rolelevel, final boolean isFixed, final String extension, final OnChargeListener onChargeListener) 接口参数: 参数 类型 描述 必传 context Context 当前游戏页面上下文,必须传入activity,不能getApplicationContext 是 orderId String 订单id 是 goodName String 商品名 是 amount long 充值金额(分) 是 serverNo String 服务器标识 是 roleName String 角色名 是 rolelevel String 角色等级 是 isFixed boolean 是否定额支付 是 extension String 扩展参数 是 onChargeListener OnChargeListener 充值回调 是
OnChargeListener接口说明:
充值成功则通过 onSuccess方法通知,否则通过onFailure通知
示例代码:
注意:以上所有接口必须要在UI线程中调用
3.常量定义 错误码 说明 JSON_DATA_ERR(-101) 返回结果(json)解析错误 OPERATE_CANCELLED(-102) 取消支付或登录 SERVER_ERROR(-103) 服务器异常 NOT_INIT(-104) SDK未初始化 PAY_ERROR(-105) 支付失败
4.更新指引 接口更新:与3.0相同; AndroidManifest更新:请复制最新Manifest内容(参照LeNiuSdk-release/AndroidManifest.xml); 依赖库更新:请引用最新的依赖项目(LeNiuSdk-release);