diff --git a/README.md b/README.md
index 2c5c758..964c51b 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,7 @@
# Gump SDK 4 for Android接入文档
-
-V4.8.0
-2020年01月15日
+V4.8.6
+2020年08月6日
## 版本概述
@@ -15,181 +14,213 @@ V4.8.0
### 1.依赖导入
配置gradle,以下为必须项
- repositories{
- maven{
- url "http://117.50.8.198:8081/nexus/content/repositories/sdk"
- }
- }
- dependencies {
- implementation 'com.gumptech.sdk:GameSDK:4.8.0'
+```groovy
+repositories{
+ maven{
+ url "http://117.50.8.198:8081/nexus/content/repositories/sdk"
+ }
+}
+dependencies {
+ implementation 'com.gumptech.sdk:GameSDK:4.8.6'
+
+}
+```
- }
-
### 2.修改AndroidManifest.xml文件
首先添加必要的权限,如下所示:
-
-
-
-
-
-
+```xml
+
+
+
+
+
+```
+
其次注册相应的Activity,具体如下:
-
-
-
-
-
-
-
-
-
-
-
+ android:theme="@style/Theme.Origin" //登录界面的主题,可选项:Theme.Origin\Theme.Orange\Theme.Blue\Theme.Pink
+ android:screenOrientation="behind"
+ android:windowSoftInputMode="stateAlwaysHidden|adjustPan">
+
+
+
+
+
+
+
+
+
+```
+
### 3.向Gump平台索要游戏ID(AppID),完成代码接入
正式开始接入逻辑代码前,先介绍下一些附加设置,以方便代码接入
*是否打印debug日志
- GameSDK.getSettings().enableDebugLogging(true);
-
+```java
+GameSDK.getSettings().enableDebugLogging(true);
+```
+
*设置需要启用的第三方登录,参数可选类型见第二章:[第三方登录平台](http://repository.gumptech.com:81/document/gamesdk4-android/blob/master/IntegrationGuide.md#1-third_plat) 字段说明
- GameSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_*);
+```java
+GameSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_*);
+```
#### 1.调用GameSDK前需要执行初始化。
若不需要分渠道
- GameSDK.init(Context,Appid);
+```java
+GameSDK.init(Context,Appid);
+```
如果需要定义渠道,必须使用如下方法
- GameSDK.init(Context,Appid,ChannelId);
+```java
+GameSDK.init(Context,Appid,ChannelId);
+```
#### 2.调用GameSDK的登录方法,将执行登录流程,需要一个Activity实例作参数
- GameSDK.login(Activity);
+```java
+GameSDK.login(Activity);
+```
在此之前,开发者需要注册用户状态监听以接受用户的登录/登出通知,通常如下:
- GameSDK.setUserStateListener(new LoginStateListener() {
- @Override
- public void onLoginSuccess(GumpUser gumpUser) {
- //登录成功,用户信息包含在GumpUser对象里
- }
-
- @Override
- public void onLoginFailed(int code, String msg) {
- //登录出错,根据错误码和信息判断错误类型
- Toast.makeText(MainActivity.this, "Login failed:code="+code+",message="+msg, Toast.LENGTH_SHORT).show();
- }
-
- @Override
- public void onLoginCanceled() {
- //用户取消登录
- Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show();
- }
-
- @Override
- public void onLogout() {
- //用户登出
-
- }
- @Override
- public void onPermissionDenied(String[] deniedPermissions) {
- //用户未授予权限,参数为没有获取的权限
- }
- });
-
+```java
+GameSDK.setUserStateListener(new LoginStateListener() {
+ @Override
+ public void onLoginSuccess(GumpUser gumpUser) {
+ //登录成功,用户信息包含在GumpUser对象里
+ }
+
+ @Override
+ public void onLoginFailed(int code, String msg) {
+ //登录出错,根据错误码和信息判断错误类型
+ Toast.makeText(MainActivity.this, "Login failed:code="+code+",message="+msg, Toast.LENGTH_SHORT).show();
+ }
+
+ @Override
+ public void onLoginCanceled() {
+ //用户取消登录
+ Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show();
+ }
+
+ @Override
+ public void onLogout() {
+ //用户登出
+
+ }
+ @Override
+ public void onPermissionDenied(String[] deniedPermissions) {
+ //用户未授予权限,参数为没有获取的权限
+ }
+ });
+```
+
如上成功登录后收到的GumpUser对象包含以下信息
- gumpUser.getUid();//获取用户的userid,此Id标识唯一用户!
- gumpUser.getAccountType();//用户类型,此类型数据可从GumpPreference常量获取
- gumpUser.getSessionKey();//登录的sessionKey对象,获取sessionKey字符串请使用此对象的getToken()方法
+```java
+gumpUser.getUid();//获取用户的userid,此Id标识唯一用户!
+gumpUser.getAccountType();//用户类型,此类型数据可从GumpPreference常量获取
+gumpUser.getSessionKey();//登录的sessionKey对象,获取sessionKey字符串请使用此对象的getToken()方法
+```
#### 3.支付功能
调用支付前需先判断支付状态,根据状态调用支付方法
- GameSDK.iapUsable(Activity, serverId, roleId, new ResultCallback() {
- @Override
- public void onResult(boolean result) {
- if(result){
- //调用GameSDK.iap
- }else{
- //调用GameSDK.pay
- }
- }
- });
+```java
+GameSDK.iapUsable(Activity, serverId, roleId, new ResultCallback() {
+ @Override
+ public void onResult(boolean result) {
+ if(result){
+ //调用GameSDK.iap
+ }else{
+ //调用GameSDK.pay
+ }
+ }
+ });
+```
1)调用GameSDK.pay
- Bundle payInfo = new Bundle();
- payInfo.putString("product", "元宝");
- payInfo.putFloat("amount", 40.0f);
- payInfo.putString("extraInfo", "This is demo!");
- payInfo.putString("serverId", "B4003");
- payInfo.putString("roleId", "10010");
- payInfo.putString("currency","currency");
- GumpSDK.pay(MainActivity.this, payInfo,PurchaseCallback);
+```java
+Bundle payInfo = new Bundle();
+payInfo.putString("product", "元宝");
+payInfo.putFloat("amount", 40.0f);
+payInfo.putString("extraInfo", "This is demo!");
+payInfo.putString("serverId", "B4003");
+payInfo.putString("roleId", "10010");
+payInfo.putString("currency","currency");
+GumpSDK.pay(MainActivity.this, payInfo,PurchaseCallback);
+```
调用pay方法时,必须穿入一个bundle对象,包含如上字段,所有字段必须全部包含
2)IAP支付
- Bundle payInfo = new Bundle();
- payInfo.putString("product", "gp_skuId");
- payInfo.putFloat("amount", 0.1f);
- payInfo.putString("extraInfo", "This is demo!");
- payInfo.putString("serverId", "100");
- payInfo.putString("roleId","100123");
- GumpSDK.iap(MainActivity.this, payInfo, PurchaseCallback);
-
+```java
+Bundle payInfo = new Bundle();
+payInfo.putString("product", "gp_skuId");
+payInfo.putFloat("amount", 0.1f);
+payInfo.putString("extraInfo", "This is demo!");
+payInfo.putString("serverId", "100");
+payInfo.putString("roleId","100123");
+GumpSDK.iap(MainActivity.this, payInfo, PurchaseCallback);
+```
+
3)PurchaseCallback为支付状态回调接口,此接口含有3个方法
- @Override
- public void onPurchaseCompleted() {
- Log.i(TAG,"purchase completed");
- }
+```java
+@Override
+public void onPurchaseCompleted() {
+ Log.i(TAG,"purchase completed");
+}
- @Override
- public void onPurchaseError(int code, String msg) {
- Log.i(TAG,"purchase error");
- }
+@Override
+public void onPurchaseError(int code, String msg) {
+ Log.i(TAG,"purchase error");
+}
+
+@Override
+public void onPurchaseCanceled() {
+ Log.i(TAG,"purchase canceled");
+}
+```
- @Override
- public void onPurchaseCanceled() {
- Log.i(TAG,"purchase canceled");
- }
-
#### 4.注销登录
- GameSDK.logout(Activity);
+```java
+GameSDK.logout(Activity);
+```
当此方法调用后,用户退出登录,并会通过LoginStateListener接口通知调用程序!为了便于用户切换登录账户,请在游戏内提供用户注销的触发按钮
#### 5.运营开关接口,若需要接入,会有我方运营人员提出需求,否则不需要接入(若对此接口不知所云,即可认为不需要接入,请自行忽略)
-
- GameSDK.inspectRiskLevel(this, new ResultCallback() {
- @Override
- public void onResult(boolean result) {
- Log.i(TAG,result?"There is some risks":"Nothing is risk");
- }
- });
-
+
+```java
+GameSDK.inspectRiskLevel(this, new ResultCallback() {
+ @Override
+ public void onResult(boolean result) {
+ Log.i(TAG,result?"There is some risks":"Nothing is risk");
+ }
+ });
+```
+
## 第二章 常量字段与代码
### 1.第三方登录平台(third_plat)
| 常量字段 | 说明 |
@@ -221,6 +252,7 @@ V4.8.0
-keep public class com.android.vending.licensing.ILicensingService
-keep class com.gump.game.sdk.view.* {*;}
-keep class com.gump.game.sdk.web.* {*;}
-
-
+
+
+
使得混淆的时候不会影响SDK的命名空间。
\ No newline at end of file