提交 f5f5dc9a 作者: Tareafengye 提交者: 刘添

Android 文档提交

上级 b1d96732
## GameSDKV1.0文档接入使用
[目录](#sec1)
    1 [获取参数](#sec1)
    2 [获取对接demo](#sec2)
    3 [导入配置SDK资源AndroidStudio](#sec3)
    4 [配置清单文件](#sec4)
    5 [初始化 SDK](#sec5)
    6 [登录](#sec6)
    7 [调起支付页面](#sec7)
    8 [角色上报](#sec8)
    9 [退出登录](#sec9)
#### 说明
此对接文档只适合与sdkv1.0版本。
所有SDK功能在GameSDK类中,可通过初始化获取改类对象,后续所有更新功能都调用这个类中方法完成
文档中所有GameSDK指SDK初始化获得的对象
### 1、获取参数<a name="sec1"></a>
从平台,获取一下参数,用于对接,填入清单文件对应的meta信息里
| 参数名 | 说明 |
|:--------| -------------:|
| app_id | 对接游戏ID |
| app_key | 渠道值 |
```
<meta-data
android:name="app_id"
android:value="149" />
<meta-data
android:name="app_key"
android:value="xxxxxxxxxxxx" />
```
### 2、获取对接demo<a name="sec2"></a>
从平台处获取对接demo,android studio版本,选择合适的版本接入。
### 3、导入配置SDK资源Androidstudio项目<a name="sec3"></a>
- 将GameSDK-xxx.aar文件复制到libs文件下
![image.png](https://upload-images.jianshu.io/upload_images/6624077-1377c60a9358ca2b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 在主工程build.gradle配置,如下图所示:
![image.png](https://upload-images.jianshu.io/upload_images/6624077-e04f6ff77f568a03.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### 4、配置清单文件(具体请参考demo)<a name="sec4"></a>
1、参考demo中的清单文件配置,主要分为权限配置、sdk所需的组件配置,meta信息配置。(权限部分SDK已经适配,访问文件权限,Android10网络访问权限,安装适配等均已适配,但不包含所有设备)
2.sdk 的代码已经经过混淆,请勿混淆sdk的代码
3、打包apk签名机制需要勾选V1、V2签名
说明:
sdk代码已经经过混淆,请不要再次混淆sdk代码,demo会贴出SDK混淆代码,可复制到自己混淆中(具体请参考demo)
### 5、初始化SDK<a name="sec5"></a>
- 说明:sdk初始化操作方法,最先调用,需要在主线程调用,最好游戏主界面activity中调用。此方法的可多次调用用于获得sdk全局管理器。
- 调用示例:在游戏主界面activity的onCreate方法中调用
```
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
GameSdk.getInstance().init(this);
}
```
### 6、登录<a name="sec6"></a>
1、添加登录回调监听
```
public void addLoginListener(OnLoginListener onLoginListener)
```
- 说明:在登陆前必须注册登陆回调监听,用于接收登陆结果,登录成功返回token
- 参数:
-
| 参数 | 说明|
|:--------| -------------:|
|OnLoginListener|登录回调接口|
- 参数类说明:OnLoginListener需要实现两个方法:
登录成功
```
void loginSuccess(Object data);
```
登录失败
```
void loginError(Object data);
```
Object中包含:
| 参数 | 说明|
|:--------| -------------:|
|token|登录成功返回token|
- 调用示例
```
GameSdk.getInstance().addLoginListener(this, new OnLoginListener() {
@Override
public void loginSuccess(Object data) {
Log.e("loginSuccess",data+"");
//显示悬浮球(根据游戏需求显示,可以在初始化显示,可以登录成功之后显示)
GameSdk.getInstance().show(SdkDemoActivity.this);
}
@Override
public void loginError(Object data) {
}
});
```
### 7、调起支付页面<a name="sec7"></a>
1、调起支付页面
```
public void showPay(CustomPayParam payParam, OnPaymentListener paymentListener)
```
- 说明:调用此方法进入支付页面
参数:
| 参数 | 说明 |
|:----|-----:|
|payParam|支付参数|
|paymentListener|回调接口|
- 调用示例
```
CustomPayParam data=new CustomPayParam();
CustomPayParam.RoleBean role=new CustomPayParam.RoleBean();
CustomPayParam.OrderBean orderInfo=new CustomPayParam.OrderBean();
data.setRole_id("425");
role.setEvent("other");
role.setServer_id("100001");
role.setRole_name("主宰传奇");
role.setCp_role_id("2413930833603897345");
role.setServer_name("主宰服");
role.setRole_level("83");
role.setRole_vip("0");
orderInfo.setCp_order_id("312223131");
orderInfo.setAmount("1");
orderInfo.setProduct_price("1");
orderInfo.setProduct_id("101");
orderInfo.setProduct_cnt("1");
orderInfo.setProduct_name("8元档充值");
orderInfo.setProduct_desc("商品");
orderInfo.setExt("测试数据");
data.setRole(role);
data.setOrder(orderInfo);
GameSdk.getInstance().showPay(this,data, new OnPaymentListener() {
@Override
public void Success(String msg) {
}
@Override
public void Failed(String msg) {
}
});
```
### 下单支付字段说明
1、order对象参数说明
| 名称|类型 | 是否必须| 默认值 | 备注|
|:--------| -------------:| -------------:|-------------:|-------------:|
|cp_order_id|string|非必须| |CP订单ID|
|amount|number|非必须| |商品总价(单位:分|
|product_price|number|非必须| |商品价格(整数,后台自动换算分)|
|product_id|String|非必须| |商品ID|
|product_cnt|number|非必须| |商品数量|
|product_name|string|非必须| |商品名称|
|product_desc|string|非必须| |商品描述|
|ext|string|非必须| |订单额外信息用(json)|
|event|string|非必须| |事件|
|server_id|string|非必须| |区服id|
|server_name|string|非必须| |区服名称|
|cp_role_id|string|非必须| |cp角色id|
|role_name|string|非必须| |角色名称|
|role_level|string|非必须| |角色等级|
|role_vip|string|非必须| |角色vip等级|
|role_id|string|非必须| |角色ID|
### 8、角色上报<a name="sec8"></a>
```
GameInfoSetting setting=new GameInfoSetting();
setting.setCp_account("w55231582254");
setting.setMember_id("11");
GameRoleInfo roleInfo=new GameRoleInfo();
roleInfo.setCombat_num("25564");
roleInfo.setCp_role_id("24139308336038973450");
roleInfo.setEvent("create");
roleInfo.setOnline_time("15426");
roleInfo.setRole_level("15");
roleInfo.setRole_name("测试角色上报");
roleInfo.setRole_vip("23");
roleInfo.setServer_id("100001");
roleInfo.setServer_name("主宰服");
setting.setRole(roleInfo);
GameSdk.getInstance().putRoleReport(setting, new SubmitRoleInfoCallBack() {
@Override
public void onSuccess(Object o) {
}
@Override
public void onFailure(int code, String msg) {
}
});
```
###角色上报字段说明
| 名称|类型 | 是否必须| 默认值 | 备注|
|:--------| -------------:| -------------------:|-------------:|-------------:|
|member_id|number|非必须| |账号ID|
|role{}|object|非必须| |角色信息|
|event|String|非必须| |事件类型,online: 角色登录, create: 创建角色,level_up: 提升等级,offline: 角色退出,other: 其他,delete: 删除角色|
|server_id|string|非必须| |区服ID|
|server_name|string|非必须| |区服名称|
|cp_role_id|string|非必须| |CP角色ID|
|role_name|string|非必须| |角色名称|
|role_level|number|非必须| |角色等级|
|role_vip|number|非必须| |角色VIP等级|
|combat_num|number|非必须| |角色战力|
|online_time|number|非必须| |本次在线时长|
|cp_account|number|非必须| |CP账户|
### 9、退出登录<a name="sec9"></a>
1、添加登出回调监听
```
public void addLogoutListener(OnLogoutListener onLogoutListener)
```
- 说明:在退出登陆前必须注册退出登陆回调监听,用于接收退出登陆,或者登陆过期的退出登陆结果。
| 参数|说明|
|:--------| ----:|
|OnLogoutListener|退出登陆回调接口|
- 参数类说明:OnLogoutListener需要实现两个方法:
- 退出登陆成功:
```
public void logoutSuccess(String s);
```
- 退出登陆失败
```
public void logoutError(String msg);
```
- 说明:退出登录成功并返回所有信息与code状态
使用示例
```
GameSdk.getInstance().addLogoutListener(new OnLogoutListener() {
@Override
public void logoutSuccess(String s) {
}
@Override
public void logoutError(String s) {
}
});
```
- 说明:在需要退出登陆时可调用此方法,注意此方法为退出,并不会调出登陆界面
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论