diff --git a/GameSDKDemo/build.gradle b/GameSDKDemo/build.gradle
index 8efd40d..d479f3f 100644
--- a/GameSDKDemo/build.gradle
+++ b/GameSDKDemo/build.gradle
@@ -34,7 +34,7 @@ repositories {
}
android {
- compileSdkVersion 22
+ compileSdkVersion 26
buildToolsVersion "27.0.3"
signingConfigs {
@@ -48,7 +48,7 @@ android {
defaultConfig {
minSdkVersion 14
- targetSdkVersion 22
+ targetSdkVersion 26
versionCode 5
versionName "1.3"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -73,11 +73,11 @@ android {
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
testImplementation 'junit:junit:4.12'
- implementation 'com.android.support:appcompat-v7:22.2.0'
+ implementation 'com.android.support:appcompat-v7:26.1.0'
//微信
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:5.1.4'
//VK
-// implementation 'com.gumptech:VKsdk:1.5.4'
+ implementation 'com.gumptech:VKsdk:1.5.4'
// implementation project(':GameSDK')
- implementation 'com.gumptech.sdk:GameSDK:4.4.0'
+ implementation 'com.gumptech.sdk:GameSDK:4.5.0'
}
diff --git a/GameSDKDemo/src/main/AndroidManifest.xml b/GameSDKDemo/src/main/AndroidManifest.xml
index 53c0067..a3dede0 100644
--- a/GameSDKDemo/src/main/AndroidManifest.xml
+++ b/GameSDKDemo/src/main/AndroidManifest.xml
@@ -4,7 +4,7 @@
+ android:targetSdkVersion="23"/>
@@ -24,8 +24,7 @@
android:name="com.gumptech.sdk.demo.MainActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
android:label="@string/app_name"
- android:screenOrientation="landscape"
- >
+ android:screenOrientation="portrait">
@@ -42,8 +41,8 @@
+ android:theme="@android:style/Theme.Light.NoTitleBar"
+ android:launchMode="singleTask">
diff --git a/GameSDKDemo/src/main/java/com/gumptech/sdk/demo/MainActivity.java b/GameSDKDemo/src/main/java/com/gumptech/sdk/demo/MainActivity.java
index 3f4213d..65238ba 100644
--- a/GameSDKDemo/src/main/java/com/gumptech/sdk/demo/MainActivity.java
+++ b/GameSDKDemo/src/main/java/com/gumptech/sdk/demo/MainActivity.java
@@ -57,10 +57,10 @@ public class MainActivity extends Activity implements PurchaseCallback {
@Override
public void onClick(View v) {
Bundle payInfo = new Bundle();
- payInfo.putString("product", "test2");
+ payInfo.putString("product", "wa2");
payInfo.putFloat("amount", 0.1f);
payInfo.putString("extraInfo", "This is demo!");
- payInfo.putString("serverId", "100");
+ payInfo.putString("serverId", "s1");
payInfo.putString("roleId", "100123");
payInfo.putString("sessionKey", gumpUser.getSessionKey().getToken());
GumpSDK.pay(MainActivity.this, payInfo, MainActivity.this);
@@ -78,6 +78,8 @@ public class MainActivity extends Activity implements PurchaseCallback {
GumpSDK.iap(MainActivity.this, payInfo, MainActivity.this);
}
});
+
+ GumpSDK.getSettings().setDebug(false);
/**
* 设置否是打印debug日志
*/
@@ -95,7 +97,7 @@ public class MainActivity extends Activity implements PurchaseCallback {
* 设置启用Wechat登录
*
*/
- GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_WECHAT);
+// GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_WECHAT);
/**
* 设置启用google登录
@@ -123,8 +125,6 @@ public class MainActivity extends Activity implements PurchaseCallback {
GumpSDK.setUserStateListener(new LoginStateListener() {
@Override
public void onLoginSuccess(GumpUser user) {
-// ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
-// cm.setText(user.getSessionKey());
gumpUser = user;
String userType = null;
switch (user.getAccountType()) {
@@ -174,6 +174,11 @@ public class MainActivity extends Activity implements PurchaseCallback {
btnLoginOrLogout.setTag(0);
userInfo.setText("User is logout");
}
+
+ @Override
+ public void onPermissionDenied() {
+
+ }
});
/**
* 初始化sdk
diff --git a/IntegrationGuide.md b/IntegrationGuide.md
deleted file mode 100644
index 1f76335..0000000
--- a/IntegrationGuide.md
+++ /dev/null
@@ -1,248 +0,0 @@
-# Gump SDK 4 for Android接入文档
-
-V4.4.0
-2018年5月08日
-
-## 版本概述
-
-此版本为使用AndroidStudio开发的版本,一改eclipse的工程依赖方式,使用aar的方式提供sdk接入包,除功能外,相对上一版本没有继承关系,请按此文档描述接入.
-
-此SDK适用android4.0以上系统.
-
-## 第一章 接入指南
-### 1.依赖导入
-将aar添加到libs目录下,然后配置gradle
-以下为必须项
-
- repositories{
- maven{
- url "http://117.50.8.198:8081/nexus/content/repositories/sdk"
- }
- }
- dependencies {
- implementation 'com.gumptech.sdk:GameSDK:4.4.0'
- }
-
-
-可选接入vk登录时,需要导入vkLibrary工程,并配置模块依赖,如下
-
- implementation 'com.gumptech:VKsdk:1.5.4'
-
-选择接入微信登录时,需要增加微信依赖,如下:
-
- implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:5.1.4'
-
-### 2.修改AndroidManifest.xml文件
-首先添加必要的权限,如下所示:
-
-
-
-
-
-
-
-
-
-其次注册相应的Activity,具体如下:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-### 3.向Gump平台索要游戏ID(AppID),完成代码接入
-正式开始接入逻辑代码前,先介绍下一些附加设置,以方便代码接入
-
-*是否打印debug日志
-
- GumpSDK.getSettings().enableDebugLogging(true);
-
-*横竖屏控制,默认为横屏,参数为false即为竖屏
-
- GumpSDK.getSettings().setScreenLandscape(true);
-
-*设置需要启用的第三方登录,参数可选类型见第二章:[第三方登录平台](http://repository.gumptech.com:81/document/gamesdk4-android/blob/master/IntegrationGuide.md#1-third_plat) 字段说明
-
- GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_*);
-
-*若要使用V4版支付请设置
-
- GumpSDK.getSettings().setPaymentVersion(PaymentVersion.V4);
-
-#### 1.调用GumpSDK前需要执行初始化。
-
-若不需要分渠道
-
- GumpSDK.init(Context,Appid, Appkey,InitializeCallback);
-如果需要定义渠道,必须使用如下方法
-
- GumpSDK.init(Context,Appid, Appkey,ChannelId,InitializeCallback);
-
-InitializeCallback为初始化回调接口,此接口只有一个回调方法initComplete(int result) result标识是否初始化成功,当result等于GumpSDK.CODE.OK时为成功,其他为失败
-
-#### 2.调用GumpSDK的开始方法,将执行登录流程,需要一个Activity实例作参数
-
- GumpSDK.start(Activity);
-在此之前,开发者需要注册用户状态监听以接受用户的登录/登出通知,通常如下:
-
- GumpSDK.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() {
- //用户登出
-
- }
- });
-
-如上成功登录后收到的GumpUser对象包含以下信息
-
- gumpUser.getUid();//获取用户的userid,此Id标识唯一用户!
- gumpUser.getAccountType();//用户类型,此类型数据可从GumpPreference常量获取
- gumpUser.getSessionKey();//登录的sessionKey对象,获取sessionKey字符串请使用此对象的getToken()方法
-
-***注意:若需要使用微信登录,需要在packageName.wxapi下增加一个名为WXEntryActivity并继承com.gumptech.sdk.WXCallbackActivity的Activity,并参考AndroidManifest.xml设置的说明,做相应的配置,packageName为应用的包名,此Activity不须任何实现。***
-
-***以GumpSDKDemo为例,包名为com.gumptech.sdk.demo,则WXEntryActivity的完整包路径为:com.gumptech.sdk.demo.wxapi.WXEntryActivity***
-
-#### 3.支付功能
-1)使用gump通行证登录,其中除nick外所有参数为必传参数
-
- Bundle payInfo = new Bundle();
- payInfo.putString("nick", "thi");
- payInfo.putString("product", "元宝");
- payInfo.putFloat("amount", 40.0f);
- payInfo.putString("extraInfo", "This is demo!");
- payInfo.putString("serverId", "B4003");
- payInfo.putString("roleId", "10010");
- payInfo.putString("sessionKey","sessionkey");
- GumpSDK.pay(MainActivity.this, payInfo,PurchaseCallback);
-调用pay方法时,必须穿入一个bundle对象,包含如上字段,除nick外所有字段必须全部包含,其中sessionKey为登录时返回的sessionKey
-
-
-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);
-
-3)PurchaseCallback为支付状态回调接口,此接口含有3个方法
-
- @Override
- public void onPurchaseCompleted(PurchaseResult result) {
- Log.i(TAG,"purchase completed");
- }
-
- @Override
- public void onPurchaseError(int code, String msg) {
- Log.i(TAG,"purchase error");
- }
-
- @Override
- public void onPurchaseCanceled() {
- Log.i(TAG,"purchase canceled");
- }
-
-#### 4.注销登录
-
- GumpSDK.logout(Activity);
-当此方法调用后,用户退出登录,并会通过LoginStateListener接口通知调用程序!为了便于用户切换登录账户,请在游戏内提供用户注销的触发按钮
-#### 5.运营开关接口,若需要接入,会有我方运营人员提出需求,否则不需要接入(若对此接口不知所云,即可认为不需要接入,请自行忽略)
-
- GumpSDK.checkRisk(this, new ResultCallback() {
- @Override
- public void onResult(boolean result) {
- Log.i(TAG,result?"There is some risks":"Nothing is risk");
- }
- });
-
-## 第二章 常量字段与代码
-### 1.第三方登录平台(third_plat)
- | 常量字段 | 说明 |
- |--------------------------------|--------------|
- |SDKSettings.THIRD_SUPPORT_FB |Facebook登录 |
- |SDKSettings.THIRD_SUPPORT_GOOGLE|Google登录 |
- |SDKSettings.THIRD_SUPPORT_LINE |Line登录 |
- |SDKSettings.THIRD_SUPPORT_VK |VK登录 |
- |SDKSettings.THIRD_SUPPORT_WECHAT|微信登录 |
-### 2.登录账户类型
- | 常量字段 | 说明 |
- |-------------------------------------|-------------|
- |GumpPreference.ACCOUNT_TYPE_FB |Facebook用户 |
- |GumpPreference.ACCOUNT_TYPE_REG |Gump注册用户 |
- |GumpPreference.ACCOUNT_TYPE_QUICK_REG|快速注册用户 |
- |GumpPreference.ACCOUNT_TYPE_GOOGLE |Google用户 |
- |GumpPreference.ACCOUNT_TYPE_LINE |Line用户 |
- |GumpPreference.ACCOUNT_TYPE_VK |VK用户 |
- |GumpPreference.ACCOUNT_TYPE_WECHAT |微信用户 |
-
-## 第三章 常见问题
-### 问题1: 如何避免混淆对SDK的影响?
-解答:有些开发者对接入了SDK的程序进行混淆时,有可能会覆盖某些java
-类,导致SDK无法正常工作,解决方法如下:
-Ø 请开发者在混淆配置文件proguard.cfg或proguard-project.txt的最后加上
-
- -keepattributes *Annotation*,InnerClasses,SourceFile,LineNumberTable
- -keep public class * extends android.app.Service
- -keep public class com.google.vending.licensing.ILicensingService
- -keep public class com.android.vending.licensing.ILicensingService
- -keep class com.gumptech.sdk.view.* {*;}
- -keep class com.gumptech.sdk.web.* {*;}
- -keep class com.gumptech.sdk.bridge.impl.*{*;}
-
-
-使得混淆的时候不会影响SDK的命名空间。
\ No newline at end of file
diff --git a/README b/README
new file mode 100644
index 0000000..12f8aea
--- /dev/null
+++ b/README
@@ -0,0 +1,251 @@
+# Gump SDK 4 for Android接入文档
+
+V4.5.0
+2018年6月13日
+
+## 版本概述
+
+此版本为使用AndroidStudio开发的版本,一改eclipse的工程依赖方式,使用aar的方式提供sdk接入包,除功能外,相对上一版本没有继承关系,请按此文档描述接入.
+
+此SDK适用android4.0以上系统.
+
+## 第一章 接入指南
+### 1.依赖导入
+配置gradle,以下为必须项
+
+ repositories{
+ maven{
+ url "http://117.50.8.198:8081/nexus/content/repositories/sdk"
+ }
+ }
+ dependencies {
+ implementation 'com.gumptech.sdk:GameSDK:4.4.0'
+ }
+
+
+可选接入vk登录时,需要导入vkLibrary工程,并配置模块依赖,如下
+
+ implementation 'com.gumptech:VKsdk:1.5.4'
+
+选择接入微信登录时,需要增加微信依赖,如下:
+
+ implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:5.1.4'
+
+### 2.修改AndroidManifest.xml文件
+首先添加必要的权限,如下所示:
+
+
+
+
+
+
+
+
+
+其次注册相应的Activity,具体如下:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+### 3.向Gump平台索要游戏ID(AppID),完成代码接入
+正式开始接入逻辑代码前,先介绍下一些附加设置,以方便代码接入
+
+*是否打印debug日志
+
+ GumpSDK.getSettings().enableDebugLogging(true);
+
+*横竖屏控制,默认为横屏,参数为false即为竖屏
+
+ GumpSDK.getSettings().setScreenLandscape(true);
+
+*设置需要启用的第三方登录,参数可选类型见第二章:[第三方登录平台](http://repository.gumptech.com:81/document/gamesdk4-android/blob/master/IntegrationGuide.md#1-third_plat) 字段说明
+
+ GumpSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_*);
+
+*若要使用V4版支付请设置
+
+ GumpSDK.getSettings().setPaymentVersion(PaymentVersion.V4);
+
+#### 1.调用GumpSDK前需要执行初始化。
+
+若不需要分渠道
+
+ GumpSDK.init(Context,Appid, Appkey,InitializeCallback);
+如果需要定义渠道,必须使用如下方法
+
+ GumpSDK.init(Context,Appid, Appkey,ChannelId,InitializeCallback);
+
+InitializeCallback为初始化回调接口,此接口只有一个回调方法initComplete(int result) result标识是否初始化成功,当result等于GumpSDK.CODE.OK时为成功,其他为失败
+
+#### 2.调用GumpSDK的开始方法,将执行登录流程,需要一个Activity实例作参数
+
+ GumpSDK.start(Activity);
+在此之前,开发者需要注册用户状态监听以接受用户的登录/登出通知,通常如下:
+
+ GumpSDK.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() {
+ //用户拒绝授予权限
+ }
+ });
+
+如上成功登录后收到的GumpUser对象包含以下信息
+
+ gumpUser.getUid();//获取用户的userid,此Id标识唯一用户!
+ gumpUser.getAccountType();//用户类型,此类型数据可从GumpPreference常量获取
+ gumpUser.getSessionKey();//登录的sessionKey对象,获取sessionKey字符串请使用此对象的getToken()方法
+
+***注意:若需要使用微信登录,需要在packageName.wxapi下增加一个名为WXEntryActivity并继承com.gumptech.sdk.WXCallbackActivity的Activity,并参考AndroidManifest.xml设置的说明,做相应的配置,packageName为应用的包名,此Activity不须任何实现。***
+
+***以GumpSDKDemo为例,包名为com.gumptech.sdk.demo,则WXEntryActivity的完整包路径为:com.gumptech.sdk.demo.wxapi.WXEntryActivity***
+
+#### 3.支付功能
+1)使用gump通行证登录,其中除nick外所有参数为必传参数
+
+ Bundle payInfo = new Bundle();
+ payInfo.putString("nick", "thi");
+ payInfo.putString("product", "元宝");
+ payInfo.putFloat("amount", 40.0f);
+ payInfo.putString("extraInfo", "This is demo!");
+ payInfo.putString("serverId", "B4003");
+ payInfo.putString("roleId", "10010");
+ payInfo.putString("sessionKey","sessionkey");
+ GumpSDK.pay(MainActivity.this, payInfo,PurchaseCallback);
+调用pay方法时,必须穿入一个bundle对象,包含如上字段,除nick外所有字段必须全部包含,其中sessionKey为登录时返回的sessionKey
+
+
+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);
+
+3)PurchaseCallback为支付状态回调接口,此接口含有3个方法
+
+ @Override
+ public void onPurchaseCompleted(PurchaseResult result) {
+ Log.i(TAG,"purchase completed");
+ }
+
+ @Override
+ public void onPurchaseError(int code, String msg) {
+ Log.i(TAG,"purchase error");
+ }
+
+ @Override
+ public void onPurchaseCanceled() {
+ Log.i(TAG,"purchase canceled");
+ }
+
+#### 4.注销登录
+
+ GumpSDK.logout(Activity);
+当此方法调用后,用户退出登录,并会通过LoginStateListener接口通知调用程序!为了便于用户切换登录账户,请在游戏内提供用户注销的触发按钮
+#### 5.运营开关接口,若需要接入,会有我方运营人员提出需求,否则不需要接入(若对此接口不知所云,即可认为不需要接入,请自行忽略)
+
+ GumpSDK.checkRisk(this, new ResultCallback() {
+ @Override
+ public void onResult(boolean result) {
+ Log.i(TAG,result?"There is some risks":"Nothing is risk");
+ }
+ });
+
+## 第二章 常量字段与代码
+### 1.第三方登录平台(third_plat)
+ | 常量字段 | 说明 |
+ |--------------------------------|--------------|
+ |SDKSettings.THIRD_SUPPORT_FB |Facebook登录 |
+ |SDKSettings.THIRD_SUPPORT_GOOGLE|Google登录 |
+ |SDKSettings.THIRD_SUPPORT_LINE |Line登录 |
+ |SDKSettings.THIRD_SUPPORT_VK |VK登录 |
+ |SDKSettings.THIRD_SUPPORT_WECHAT|微信登录 |
+### 2.登录账户类型
+ | 常量字段 | 说明 |
+ |-------------------------------------|-------------|
+ |GumpPreference.ACCOUNT_TYPE_FB |Facebook用户 |
+ |GumpPreference.ACCOUNT_TYPE_REG |Gump注册用户 |
+ |GumpPreference.ACCOUNT_TYPE_QUICK_REG|快速注册用户 |
+ |GumpPreference.ACCOUNT_TYPE_GOOGLE |Google用户 |
+ |GumpPreference.ACCOUNT_TYPE_LINE |Line用户 |
+ |GumpPreference.ACCOUNT_TYPE_VK |VK用户 |
+ |GumpPreference.ACCOUNT_TYPE_WECHAT |微信用户 |
+
+## 第三章 常见问题
+### 问题1: 如何避免混淆对SDK的影响?
+解答:有些开发者对接入了SDK的程序进行混淆时,有可能会覆盖某些java
+类,导致SDK无法正常工作,解决方法如下:
+Ø 请开发者在混淆配置文件proguard.cfg或proguard-project.txt的最后加上
+
+ -keepattributes *Annotation*,InnerClasses,SourceFile,LineNumberTable
+ -keep public class * extends android.app.Service
+ -keep public class com.google.vending.licensing.ILicensingService
+ -keep public class com.android.vending.licensing.ILicensingService
+ -keep class com.gumptech.sdk.view.* {*;}
+ -keep class com.gumptech.sdk.web.* {*;}
+ -keep class com.gumptech.sdk.bridge.impl.*{*;}
+
+
+使得混淆的时候不会影响SDK的命名空间。
\ No newline at end of file