Commit 656f5f9fdd6c19eb1c4de09dede6691b04ed22b7

Authored by 赵康
1 parent 0ea573a866
Exists in master

merge payment v3 and v4 in one package

Showing 8 changed files with 42 additions and 15 deletions Inline Diff

GameSDK-release4.1.2.aar
No preview for this file type
GameSDK-release4.1.3.aar
No preview for this file type
GameSDKDemo/GameSDKDemo.iml
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <module external.linked.project.id=":GameSDKDemo" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../../../GameSDK_AS" external.system.id="GRADLE" external.system.module.group="GameSDK_AS" external.system.module.version="unspecified" type="JAVA_MODULE" version="4"> 2 <module external.linked.project.id=":GameSDKDemo" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../../../GameSDK_AS" external.system.id="GRADLE" external.system.module.group="GameSDK_AS" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
3 <component name="FacetManager"> 3 <component name="FacetManager">
4 <facet type="android-gradle" name="Android-Gradle"> 4 <facet type="android-gradle" name="Android-Gradle">
5 <configuration> 5 <configuration>
6 <option name="GRADLE_PROJECT_PATH" value=":GameSDKDemo" /> 6 <option name="GRADLE_PROJECT_PATH" value=":GameSDKDemo" />
7 </configuration> 7 </configuration>
8 </facet> 8 </facet>
9 <facet type="android" name="Android"> 9 <facet type="android" name="Android">
10 <configuration> 10 <configuration>
11 <option name="SELECTED_BUILD_VARIANT" value="debug" /> 11 <option name="SELECTED_BUILD_VARIANT" value="debug" />
12 <option name="SELECTED_TEST_ARTIFACT" value="_android_test_" /> 12 <option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
13 <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" /> 13 <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
14 <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" /> 14 <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
15 <afterSyncTasks> 15 <afterSyncTasks>
16 <task>generateDebugSources</task> 16 <task>generateDebugSources</task>
17 </afterSyncTasks> 17 </afterSyncTasks>
18 <option name="ALLOW_USER_CONFIGURATION" value="false" /> 18 <option name="ALLOW_USER_CONFIGURATION" value="false" />
19 <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" /> 19 <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
20 <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" /> 20 <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
21 <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" /> 21 <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
22 <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" /> 22 <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
23 </configuration> 23 </configuration>
24 </facet> 24 </facet>
25 </component> 25 </component>
26 <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false"> 26 <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
27 <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" /> 27 <output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
28 <output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" /> 28 <output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
29 <exclude-output /> 29 <exclude-output />
30 <content url="file://$MODULE_DIR$"> 30 <content url="file://$MODULE_DIR$">
31 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" /> 31 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
32 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" /> 32 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
33 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" /> 33 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
34 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" /> 34 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
35 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" /> 35 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
36 <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" /> 36 <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
37 <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" /> 37 <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
38 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" /> 38 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
39 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" /> 39 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
40 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" /> 40 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
41 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" /> 41 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
42 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" /> 42 <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
43 <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" /> 43 <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
44 <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" /> 44 <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
45 <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" /> 45 <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
46 <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" /> 46 <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
47 <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" /> 47 <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
48 <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" /> 48 <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
49 <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" /> 49 <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
50 <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" /> 50 <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
51 <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" /> 51 <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
52 <sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" /> 52 <sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
53 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" /> 53 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
54 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" /> 54 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
55 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" /> 55 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
56 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" /> 56 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
57 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" /> 57 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
58 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/jni" isTestSource="true" /> 58 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/jni" isTestSource="true" />
59 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" /> 59 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
60 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" /> 60 <sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
61 <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" /> 61 <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
62 <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> 62 <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
63 <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" /> 63 <sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
64 <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" /> 64 <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
65 <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> 65 <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
66 <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" /> 66 <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
67 <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" /> 67 <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
68 <sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" /> 68 <sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
69 <sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
70 <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
71 <sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
72 <sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
73 <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
74 <sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
75 <sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
76 <sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
77 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" /> 69 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
78 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" /> 70 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
79 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" /> 71 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
80 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" /> 72 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
81 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" /> 73 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
82 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" /> 74 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
83 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" /> 75 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
84 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" /> 76 <sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
77 <sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
78 <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
79 <sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
80 <sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
81 <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
82 <sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
83 <sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
84 <sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
85 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
85 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" /> 86 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
86 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/GameSDK-release4.1.1/jars" /> 87 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/builds" />
88 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
89 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
87 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.2.0/jars" /> 90 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.2.0/jars" />
88 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/22.2.0/jars" /> 91 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/22.2.0/jars" />
89 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" /> 92 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
93 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-classes" />
94 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-runtime-classes" />
95 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-safeguard" />
96 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-verifier" />
97 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-resources" />
98 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-support" />
99 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
90 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" /> 100 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
101 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/reload-dex" />
91 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" /> 102 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
103 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/restart-dex" />
92 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" /> 104 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
105 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
93 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" /> 106 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
107 <excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
94 <excludeFolder url="file://$MODULE_DIR$/build/outputs" /> 108 <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
109 <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
95 </content> 110 </content>
96 <orderEntry type="jdk" jdkName="Android API 22 Platform" jdkType="Android SDK" /> 111 <orderEntry type="jdk" jdkName="Android API 22 Platform" jdkType="Android SDK" />
97 <orderEntry type="sourceFolder" forTests="false" /> 112 <orderEntry type="sourceFolder" forTests="false" />
98 <orderEntry type="library" exported="" scope="TEST" name="hamcrest-core-1.3" level="project" /> 113 <orderEntry type="library" exported="" scope="TEST" name="hamcrest-core-1.3" level="project" />
99 <orderEntry type="library" exported="" scope="TEST" name="junit-4.12" level="project" /> 114 <orderEntry type="library" exported="" scope="TEST" name="junit-4.12" level="project" />
GameSDKDemo/build.gradle
1 apply plugin: 'com.android.application' 1 apply plugin: 'com.android.application'
2 2
3 repositories{ 3 repositories{
4 flatDir{ 4 flatDir{
5 dirs 'libs' 5 dirs 'libs'
6 } 6 }
7 } 7 }
8 8
9 android { 9 android {
10 compileSdkVersion 22 10 compileSdkVersion 22
11 buildToolsVersion "22.0.0" 11 buildToolsVersion "22.0.0"
12 12
13 13
14 defaultConfig { 14 defaultConfig {
15 minSdkVersion 9 15 minSdkVersion 9
16 targetSdkVersion 22 16 targetSdkVersion 22
17 versionCode 1 17 versionCode 1
18 versionName "1.0" 18 versionName "1.0"
19 } 19 }
20 20
21 buildTypes { 21 buildTypes {
22 release { 22 release {
23 minifyEnabled false 23 minifyEnabled false
24 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 24 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
25 } 25 }
26 } 26 }
27 lintOptions{ 27 lintOptions{
28 abortOnError false 28 abortOnError false
29 } 29 }
30 } 30 }
31 31
32 dependencies { 32 dependencies {
33 compile fileTree(dir: 'libs', include: ['*.jar']) 33 compile fileTree(dir: 'libs', include: ['*.jar'])
34 testCompile 'junit:junit:4.12' 34 testCompile 'junit:junit:4.12'
35 compile 'com.android.support:appcompat-v7:22.2.0' 35 compile 'com.android.support:appcompat-v7:22.2.0'
36 // compile project(':GameSDK') 36 compile project(':GameSDK')
37 compile(name:'GameSDK-release4.1.2',ext:'aar') 37 // compile(name:'GameSDK-release4.1.3',ext:'aar')
38 } 38 }
39 39
GameSDKDemo/libs/GameSDK-release4.1.2.aar
No preview for this file type
GameSDKDemo/libs/GameSDK-release4.1.3.aar
No preview for this file type
GameSDKDemo/src/main/java/com/gumptech/sdk/demo/MainActivity.java
1 package com.gumptech.sdk.demo; 1 package com.gumptech.sdk.demo;
2 2
3 import android.app.Activity; 3 import android.app.Activity;
4 import android.content.Context; 4 import android.content.Context;
5 import android.os.Bundle; 5 import android.os.Bundle;
6 import android.text.ClipboardManager; 6 import android.text.ClipboardManager;
7 import android.util.Log; 7 import android.util.Log;
8 import android.view.View; 8 import android.view.View;
9 import android.widget.Button; 9 import android.widget.Button;
10 import android.widget.TextView; 10 import android.widget.TextView;
11 import android.widget.Toast; 11 import android.widget.Toast;
12 12
13 import com.gumptech.sdk.GumpPreference; 13 import com.gumptech.sdk.GumpPreference;
14 import com.gumptech.sdk.GumpSDK; 14 import com.gumptech.sdk.GumpSDK;
15 import com.gumptech.sdk.PaymentVersion;
15 import com.gumptech.sdk.bean.GumpUser; 16 import com.gumptech.sdk.bean.GumpUser;
16 import com.gumptech.sdk.bean.PurchaseResult; 17 import com.gumptech.sdk.bean.PurchaseResult;
17 import com.gumptech.sdk.callback.InitializeCallback; 18 import com.gumptech.sdk.callback.InitializeCallback;
18 import com.gumptech.sdk.callback.LoginStateListener; 19 import com.gumptech.sdk.callback.LoginStateListener;
19 import com.gumptech.sdk.callback.PurchaseCallback; 20 import com.gumptech.sdk.callback.PurchaseCallback;
20 import com.gumptech.sdk.passport.fb.FBAccessToken; 21 import com.gumptech.sdk.passport.fb.FBAccessToken;
21 22
22 public class MainActivity extends Activity implements PurchaseCallback{ 23 public class MainActivity extends Activity implements PurchaseCallback{
23 24
24 private static final String TAG = "MainActivity"; 25 private static final String TAG = "MainActivity";
25 26
26 private TextView tvVersion; 27 private TextView tvVersion;
27 private TextView userInfo; 28 private TextView userInfo;
28 29
29 private Button btnLoginOrLogout; 30 private Button btnLoginOrLogout;
30 31
31 private String appId = "10022"; 32 private String appId = "10022";
32 private String appKey = "93a27b0bd99bac3e68a440b48aa421ab"; 33 private String appKey = "93a27b0bd99bac3e68a440b48aa421ab";
33 private String sessionKey; 34 private String sessionKey;
34 35
35 @Override 36 @Override
36 protected void onCreate(Bundle savedInstanceState) { 37 protected void onCreate(Bundle savedInstanceState) {
37 super.onCreate(savedInstanceState); 38 super.onCreate(savedInstanceState);
38 setContentView(R.layout.activity_main); 39 setContentView(R.layout.activity_main);
39 tvVersion = (TextView) findViewById(R.id.version); 40 tvVersion = (TextView) findViewById(R.id.version);
40 userInfo = (TextView) findViewById(R.id.user_info); 41 userInfo = (TextView) findViewById(R.id.user_info);
41 btnLoginOrLogout = (Button) findViewById(R.id.login_or_logout); 42 btnLoginOrLogout = (Button) findViewById(R.id.login_or_logout);
42 btnLoginOrLogout.setOnClickListener(new View.OnClickListener() { 43 btnLoginOrLogout.setOnClickListener(new View.OnClickListener() {
43 44
44 @Override 45 @Override
45 public void onClick(View v) { 46 public void onClick(View v) {
46 if (btnLoginOrLogout.getTag() == null || (Integer) btnLoginOrLogout.getTag() == 0) 47 if (btnLoginOrLogout.getTag() == null || (Integer) btnLoginOrLogout.getTag() == 0)
47 GumpSDK.start(MainActivity.this); 48 GumpSDK.start(MainActivity.this);
48 else 49 else
49 GumpSDK.logout(MainActivity.this); 50 GumpSDK.logout(MainActivity.this);
50 } 51 }
51 }); 52 });
52 findViewById(R.id.pay).setOnClickListener(new View.OnClickListener() { 53 findViewById(R.id.pay).setOnClickListener(new View.OnClickListener() {
53 54
54 @Override 55 @Override
55 public void onClick(View v) { 56 public void onClick(View v) {
56 Bundle payInfo = new Bundle(); 57 Bundle payInfo = new Bundle();
57 payInfo.putString("nick", "thi");
58 payInfo.putString("product", "test2"); 58 payInfo.putString("product", "test2");
59 payInfo.putFloat("amount", 0.1f); 59 payInfo.putFloat("amount", 0.1f);
60 payInfo.putString("extraInfo", "This is demo!"); 60 payInfo.putString("extraInfo", "This is demo!");
61 payInfo.putString("serverId", "100"); 61 payInfo.putString("serverId", "100");
62 payInfo.putString("sessionKey", sessionKey); 62 payInfo.putString("sessionKey", sessionKey);
63 GumpSDK.pay(MainActivity.this, payInfo, MainActivity.this); 63 GumpSDK.pay(MainActivity.this, payInfo, MainActivity.this);
64 } 64 }
65 }); 65 });
66 /** 66 /**
67 * 设置否是打印debug日志 67 * 设置否是打印debug日志
68 */ 68 */
69 GumpSDK.getSettings().enableDebugLogging(true); 69 GumpSDK.getSettings().enableDebugLogging(true);
70 /** 70 /**
71 * 设置是否启用facebook登录 71 * 设置是否启用facebook登录
72 */ 72 */
73 GumpSDK.getSettings().setFBEnable(true); 73 GumpSDK.getSettings().setFBEnable(true);
74 /** 74 /**
75 * 设置是否启用Vk登录 75 * 设置是否启用Vk登录
76 */ 76 */
77 GumpSDK.getSettings().setVKEnable(false); 77 GumpSDK.getSettings().setVKEnable(false);
78 /** 78 /**
79 * 设置屏幕方向 79 * 设置屏幕方向
80 */ 80 */
81 GumpSDK.getSettings().setScreenLandscape(true); 81 GumpSDK.getSettings().setScreenLandscape(true);
82
83 /**
84 * 设置支付版本
85 */
86 GumpSDK.getSettings().setPaymentVersion(PaymentVersion.V4);
87
82 /** 88 /**
83 * 设置用户登录状态监听器 89 * 设置用户登录状态监听器
84 */ 90 */
85 91
86 GumpSDK.setUserStateListener(new LoginStateListener() { 92 GumpSDK.setUserStateListener(new LoginStateListener() {
87 @Override 93 @Override
88 public void onLoginSuccess(GumpUser user) { 94 public void onLoginSuccess(GumpUser user) {
89 ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); 95 ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
90 cm.setText(user.getSessionKey()); 96 cm.setText(user.getSessionKey());
91 sessionKey = user.getSessionKey(); 97 sessionKey = user.getSessionKey();
92 String userType=null; 98 String userType=null;
93 switch(user.getAccountType()){ 99 switch(user.getAccountType()){
94 case GumpPreference.ACCOUNT_TYPE_FB: 100 case GumpPreference.ACCOUNT_TYPE_FB:
95 userType = "Facebook登录"; 101 userType = "Facebook登录";
96 String fbToken = FBAccessToken.getCurrentAccessToken().getToken(); 102 String fbToken = FBAccessToken.getCurrentAccessToken().getToken();
97 Log.d(TAG,"FBAccessToken:"+fbToken); 103 Log.d(TAG,"FBAccessToken:"+fbToken);
98 break; 104 break;
99 case GumpPreference.ACCOUNT_TYPE_QUICK_REG: 105 case GumpPreference.ACCOUNT_TYPE_QUICK_REG:
100 userType = "快速登录"; 106 userType = "快速登录";
101 break; 107 break;
102 case GumpPreference.ACCOUNT_TYPE_REG: 108 case GumpPreference.ACCOUNT_TYPE_REG:
103 userType = "gump注册用户"; 109 userType = "gump注册用户";
104 break; 110 break;
105 case GumpPreference.ACCOUNT_TYPE_VK: 111 case GumpPreference.ACCOUNT_TYPE_VK:
106 userType = "vk登录"; 112 userType = "vk登录";
107 break; 113 break;
108 } 114 }
109 userInfo.setText(" Userid:" + user.getUid() + "\n accountType:(" + user.getAccountType()+") "+userType + "\n sessionKey:" + user.getSessionKey()); 115 userInfo.setText(" Userid:" + user.getUid() + "\n accountType:(" + user.getAccountType()+") "+userType + "\n sessionKey:" + user.getSessionKey());
110 btnLoginOrLogout.setText("Logout"); 116 btnLoginOrLogout.setText("Logout");
111 btnLoginOrLogout.setTag(1); 117 btnLoginOrLogout.setTag(1);
112 } 118 }
113 119
114 @Override 120 @Override
115 public void onLoginFailed(int code, String msg) { 121 public void onLoginFailed(int code, String msg) {
116 userInfo.setText(msg); 122 userInfo.setText(msg);
117 Toast.makeText(MainActivity.this, "Login failed:code="+code+",message="+msg, Toast.LENGTH_SHORT).show(); 123 Toast.makeText(MainActivity.this, "Login failed:code="+code+",message="+msg, Toast.LENGTH_SHORT).show();
118 } 124 }
119 125
120 @Override 126 @Override
121 public void onLoginCanceled() { 127 public void onLoginCanceled() {
122 Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show(); 128 Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show();
123 } 129 }
124 130
125 @Override 131 @Override
126 public void onLogout() { 132 public void onLogout() {
127 btnLoginOrLogout.setText("Login"); 133 btnLoginOrLogout.setText("Login");
128 btnLoginOrLogout.setTag(0); 134 btnLoginOrLogout.setTag(0);
129 userInfo.setText("User is logout"); 135 userInfo.setText("User is logout");
130 } 136 }
131 }); 137 });
132 /** 138 /**
133 * 初始化sdk 139 * 初始化sdk
134 */ 140 */
135 GumpSDK.init(getApplicationContext(), appId, appKey, "1000", new InitializeCallback() { 141 GumpSDK.init(getApplicationContext(), appId, appKey, "1000", new InitializeCallback() {
136 @Override 142 @Override
137 public void initComplete(int result) { 143 public void initComplete(int result) {
138 if (result == GumpSDK.CODE.OK) { 144 if (result == GumpSDK.CODE.OK) {
139 btnLoginOrLogout.setEnabled(true); 145 btnLoginOrLogout.setEnabled(true);
140 } 146 }
141 } 147 }
142 }); 148 });
143 149
144 tvVersion.setText("SDK Version:" + GumpSDK.getVersion()); 150 tvVersion.setText("SDK Version:" + GumpSDK.getVersion());
145 } 151 }
146 152
147 @Override 153 @Override
148 public void onPurchaseCompleted(PurchaseResult result) { 154 public void onPurchaseCompleted(PurchaseResult result) {
149 Log.i(TAG,"purchase completed"); 155 Log.i(TAG,"purchase completed");
150 } 156 }
151 157
152 @Override 158 @Override
153 public void onPurchaseError(int code, String msg) { 159 public void onPurchaseError(int code, String msg) {
154 Log.i(TAG,"purchase error"); 160 Log.i(TAG,"purchase error");
155 } 161 }
156 162
157 @Override 163 @Override
158 public void onPurchaseCanceled() { 164 public void onPurchaseCanceled() {
159 Log.i(TAG,"purchase canceled"); 165 Log.i(TAG,"purchase canceled");
160 } 166 }
161 } 167 }
1 # Gump SDK 4 for Android接入文档 1 # Gump SDK 4 for Android接入文档
2 2
3 V4.1.0 3 V4.1.3
4 2016年11月09日 4 2017年1月12日
5 5
6 ## 版本概述 6 ## 版本概述
7 7
8 此版本为使用AndroidStudio开发的第一个版本,一改eclipse的工程依赖方式,使用aar的方式提供sdk接入包,除功能外,相对上一版本没有继承关系,请按此文档描述接入. 8 此版本为使用AndroidStudio开发的第一个版本,一改eclipse的工程依赖方式,使用aar的方式提供sdk接入包,除功能外,相对上一版本没有继承关系,请按此文档描述接入.
9 9
10 此SDK适用android2.3以上系统. 10 此SDK适用android2.3以上系统.
11 11
12 ## 第一章 接入指南 12 ## 第一章 接入指南
13 ### 1.依赖导入 13 ### 1.依赖导入
14 将aar添加到libs目录下,然后配置gradle 14 将aar添加到libs目录下,然后配置gradle
15 以下为必须项 15 以下为必须项
16 16
17 repositories{ 17 repositories{
18 flatDir{ 18 flatDir{
19 dirs 'libs' 19 dirs 'libs'
20 } 20 }
21 } 21 }
22 dependencies { 22 dependencies {
23 compile(name:'GameSDK-releaseXXX',ext:'aar') 23 compile(name:'GameSDK-releaseXXX',ext:'aar')
24 } 24 }
25 25
26 26
27 可选接入vk登录时,需要导入vkLibrary工程,并配置模块依赖,如下 27 可选接入vk登录时,需要导入vkLibrary工程,并配置模块依赖,如下
28 28
29 compile project(':vksdk_library') 29 compile project(':vksdk_library')
30 30
31 ### 2.修改AndroidManifest.xml文件 31 ### 2.修改AndroidManifest.xml文件
32 首先添加必要的权限,如下所示: 32 首先添加必要的权限,如下所示:
33 33
34 <uses-permission android:name="android.permission.INTERNET" /> 34 <uses-permission android:name="android.permission.INTERNET" />
35 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 35 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
36 <uses-permission android:name="android.permission.BLUETOOTH" /> 36 <uses-permission android:name="android.permission.BLUETOOTH" />
37 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 37 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
38 <uses-permission android:name="android.permission.WRITE_SETTINGS"/> 38 <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
39 <uses-permission android:name="android.permission.GET_ACCOUNTS"/> 39 <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
40 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 40 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
41 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 41 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
42 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 42 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
43 <uses-permission android:name="android.permission.SEND_SMS"/> 43 <uses-permission android:name="android.permission.SEND_SMS"/>
44 <!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. --> 44 <!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. -->
45 <uses-permission android:name="com.android.vending.BILLING" /> 45 <uses-permission android:name="com.android.vending.BILLING" />
46 46
47 其次注册相应的Activity,具体如下: 47 其次注册相应的Activity,具体如下:
48 48
49 <activity 49 <activity
50 android:name="com.gumptech.sdk.ContainerActivity" 50 android:name="com.gumptech.sdk.ContainerActivity"
51 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout" 51 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
52 android:windowSoftInputMode="stateAlwaysHidden|adjustPan" 52 android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
53 android:launchMode="singleTask" 53 android:launchMode="singleTask"
54 android:theme="@style/Theme.TransparentWin" > 54 android:theme="@style/Theme.TransparentWin" >
55 </activity> 55 </activity>
56 <activity 56 <activity
57 android:name="com.gumptech.sdk.PaymentActivity" 57 android:name="com.gumptech.sdk.PaymentActivity"
58 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout" 58 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
59 android:launchMode="singleTask" 59 android:launchMode="singleTask"
60 android:theme="@android:style/Theme.Translucent.NoTitleBar" > 60 android:theme="@android:style/Theme.Translucent.NoTitleBar" >
61 <intent-filter> 61 <intent-filter>
62 <category android:name="android.intent.category.DEFAULT" /> 62 <category android:name="android.intent.category.DEFAULT" />
63 <action android:name="android.intent.action.VIEW" /> 63 <action android:name="android.intent.action.VIEW" />
64 <category android:name="android.intent.category.BROWSABLE" /> 64 <category android:name="android.intent.category.BROWSABLE" />
65 <data 65 <data
66 android:host="com.gump.sdk" 66 android:host="com.gump.sdk"
67 android:scheme="gump+游戏的appId" /> 67 android:scheme="gump+游戏的appId" />
68 </intent-filter> 68 </intent-filter>
69 </activity> 69 </activity>
70 <activity 70 <activity
71 android:name="com.gumptech.sdk.ExchangeWindow" 71 android:name="com.gumptech.sdk.ExchangeWindow"
72 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout" 72 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
73 android:theme="@style/Theme.WinForExchange" > 73 android:theme="@style/Theme.WinForExchange" >
74 </activity> 74 </activity>
75 75
76 <service android:name="com.gumptech.sdk.PushService" /> 76 <service android:name="com.gumptech.sdk.PushService" />
77 77
78 <!-- vk登录使用,若不接入vk,不需配置 --> 78 <!-- vk登录使用,若不接入vk,不需配置 -->
79 <activity android:name="com.vk.sdk.VKOpenAuthActivity" /> 79 <activity android:name="com.vk.sdk.VKOpenAuthActivity" />
80 <activity 80 <activity
81 android:name="com.vk.sdk.VKServiceActivity" 81 android:name="com.vk.sdk.VKServiceActivity"
82 android:label="ServiceActivity" 82 android:label="ServiceActivity"
83 android:theme="@style/VK.Transparent" /> 83 android:theme="@style/VK.Transparent" />
84 84
85 ### 3.向Gump平台索要游戏ID(AppID),完成代码接入 85 ### 3.向Gump平台索要游戏ID(AppID),完成代码接入
86 正式开始接入逻辑代码前,先介绍下一些附加设置,以方便代码接入 86 正式开始接入逻辑代码前,先介绍下一些附加设置,以方便代码接入
87 87
88 *是否打印debug日志 88 *是否打印debug日志
89 89
90 GumpSDK.getSettings().enableDebugLogging(true); 90 GumpSDK.getSettings().enableDebugLogging(true);
91 91
92 *Gump Logo隐藏 92 *Gump Logo隐藏
93 93
94 GumpSDK.getSettings().setLogoShow(false); 94 GumpSDK.getSettings().setLogoShow(false);
95 95
96 *横竖屏控制,默认为横屏,参数为false即为竖屏 96 *横竖屏控制,默认为横屏,参数为false即为竖屏
97 97
98 GumpSDK.getSettings().setScreenLandscape(true); 98 GumpSDK.getSettings().setScreenLandscape(true);
99 99
100 *设置是否启用Facebook登录和VK登录 100 *设置是否启用Facebook登录和VK登录
101 101
102 GumpSDK.getSettings().setFBEnable(true); 102 GumpSDK.getSettings().setFBEnable(true);
103 GumpSDK.getSettings().setVKEnable(true); 103 GumpSDK.getSettings().setVKEnable(true);
104 104
105 *若要使用V4版支付请设置
106
107 GumpSDK.getSettings().setPaymentVersion(PaymentVersion.V4);
108
105 #### 1.调用GumpSDK前需要执行初始化。 109 #### 1.调用GumpSDK前需要执行初始化。
106 110
107 若不需要分渠道 111 若不需要分渠道
108 112
109 GumpSDK.init(Context,Appid, Appkey,InitializeCallback); 113 GumpSDK.init(Context,Appid, Appkey,InitializeCallback);
110 如果需要定义渠道,必须使用如下方法 114 如果需要定义渠道,必须使用如下方法
111 115
112 GumpSDK.init(Context,Appid, Appkey,ChannelId,InitializeCallback); 116 GumpSDK.init(Context,Appid, Appkey,ChannelId,InitializeCallback);
113 117
114 InitializeCallback为初始化回调接口,此接口只有一个回调方法initComplete(int result) result标识是否初始化成功,当result等于GumpSDK.CODE.OK时为成功,其他为失败 118 InitializeCallback为初始化回调接口,此接口只有一个回调方法initComplete(int result) result标识是否初始化成功,当result等于GumpSDK.CODE.OK时为成功,其他为失败
115 119
116 #### 2.调用GumpSDK的开始方法,将执行登录流程,需要一个Activity实例作参数 120 #### 2.调用GumpSDK的开始方法,将执行登录流程,需要一个Activity实例作参数
117 121
118 GumpSDK.start(Activity); 122 GumpSDK.start(Activity);
119 在此之前,开发者需要注册用户状态监听以接受用户的登录/登出通知,通常如下: 123 在此之前,开发者需要注册用户状态监听以接受用户的登录/登出通知,通常如下:
120 124
121 GumpSDK.setUserStateListener(new LoginStateListener() { 125 GumpSDK.setUserStateListener(new LoginStateListener() {
122 @Override 126 @Override
123 public void onLoginSuccess(GumpUser gumpUser) { 127 public void onLoginSuccess(GumpUser gumpUser) {
124 //登录成功,用户信息包含在GumpUser对象里 128 //登录成功,用户信息包含在GumpUser对象里
125 } 129 }
126 130
127 @Override 131 @Override
128 public void onLoginFailed(int code, String msg) { 132 public void onLoginFailed(int code, String msg) {
129 //登录出错,根据错误码和信息判断错误类型 133 //登录出错,根据错误码和信息判断错误类型
130 Toast.makeText(MainActivity.this, "Login failed:code="+code+",message="+msg, Toast.LENGTH_SHORT).show(); 134 Toast.makeText(MainActivity.this, "Login failed:code="+code+",message="+msg, Toast.LENGTH_SHORT).show();
131 } 135 }
132 136
133 @Override 137 @Override
134 public void onLoginCanceled() { 138 public void onLoginCanceled() {
135 //用户取消登录 139 //用户取消登录
136 Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show(); 140 Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show();
137 } 141 }
138 142
139 @Override 143 @Override
140 public void onLogout() { 144 public void onLogout() {
141 //用户登出 145 //用户登出
142 146
143 } 147 }
144 }); 148 });
145 149
146 如上成功登录后收到的GumpUser对象包含以下信息 150 如上成功登录后收到的GumpUser对象包含以下信息
147 151
148 gumpUser.getUid();//获取用户的userid,此Id标识唯一用户! 152 gumpUser.getUid();//获取用户的userid,此Id标识唯一用户!
149 gumpUser.getAccountType();//用户类型,此类型数据可从GumpPreference常量获取 153 gumpUser.getAccountType();//用户类型,此类型数据可从GumpPreference常量获取
150 gumpUser.getSessionKey();//登录的sesionKey 154 gumpUser.getSessionKey();//登录的sesionKey
151 155
152 156
153 #### 3.支付功能 157 #### 3.支付功能
154 1)使用gump通行证登录,其中除nick和roleId外所有参数为必传参数 158 1)使用gump通行证登录,其中除nick和roleId外所有参数为必传参数
155 159
156 Bundle payInfo = new Bundle(); 160 Bundle payInfo = new Bundle();
157 payInfo.putString("nick", "thi"); 161 payInfo.putString("nick", "thi");
158 payInfo.putString("product", "元宝"); 162 payInfo.putString("product", "元宝");
159 payInfo.putFloat("amount", 40.0f); 163 payInfo.putFloat("amount", 40.0f);
160 payInfo.putString("extraInfo", "This is demo!"); 164 payInfo.putString("extraInfo", "This is demo!");
161 payInfo.putString("serverId", "B4003"); 165 payInfo.putString("serverId", "B4003");
162 payInfo.putString("roleId", "10010"); 166 payInfo.putString("roleId", "10010");
163 payInfo.putString("sessionKey","sessionkey"); 167 payInfo.putString("sessionKey","sessionkey");
164 GumpSDK.pay(MainActivity.this, payInfo,PurchaseCallback); 168 GumpSDK.pay(MainActivity.this, payInfo,PurchaseCallback);
165 调用pay方法时,必须穿入一个bundle对象,包含如上字段,除nick和roleId外所有字段必须全部包含,其中sessionKey为登录时返回的sessionKey 169 调用pay方法时,必须穿入一个bundle对象,包含如上字段,除nick和roleId外所有字段必须全部包含,其中sessionKey为登录时返回的sessionKey
166 170
167 171
168 2)PurchaseCallback为支付状态回调接口,此接口含有3个方法 172 2)PurchaseCallback为支付状态回调接口,此接口含有3个方法
169 173
170 @Override 174 @Override
171 public void onPurchaseCompleted(PurchaseResult result) { 175 public void onPurchaseCompleted(PurchaseResult result) {
172 Log.i(TAG,"purchase completed"); 176 Log.i(TAG,"purchase completed");
173 } 177 }
174 178
175 @Override 179 @Override
176 public void onPurchaseError(int code, String msg) { 180 public void onPurchaseError(int code, String msg) {
177 Log.i(TAG,"purchase error"); 181 Log.i(TAG,"purchase error");
178 } 182 }
179 183
180 @Override 184 @Override
181 public void onPurchaseCanceled() { 185 public void onPurchaseCanceled() {
182 Log.i(TAG,"purchase canceled"); 186 Log.i(TAG,"purchase canceled");
183 } 187 }
184 188
185 #### 4.注销登录 189 #### 4.注销登录
186 190
187 GumpSDK.logout(Activity); 191 GumpSDK.logout(Activity);
188 当此方法调用后,用户退出登录,并会通过LoginStateListener接口通知调用程序!为了便于用户切换登录账户,请在游戏内提供用户注销的触发按钮 192 当此方法调用后,用户退出登录,并会通过LoginStateListener接口通知调用程序!为了便于用户切换登录账户,请在游戏内提供用户注销的触发按钮
189 ## 第二章 常见问题 193 ## 第二章 常见问题
190 ### 问题1: 如何避免混淆对SDK的影响? 194 ### 问题1: 如何避免混淆对SDK的影响?
191 解答:有些开发者对接入了SDK的程序进行混淆时,有可能会覆盖某些java 195 解答:有些开发者对接入了SDK的程序进行混淆时,有可能会覆盖某些java
192 类,导致SDK无法正常工作,解决方法如下: 196 类,导致SDK无法正常工作,解决方法如下:
193 Ø 请开发者在混淆配置文件proguard.cfg或proguard-project.txt的最后加上 197 Ø 请开发者在混淆配置文件proguard.cfg或proguard-project.txt的最后加上
194 198
195 -keepattributes *Annotation*,InnerClasses,SourceFile,LineNumberTable 199 -keepattributes *Annotation*,InnerClasses,SourceFile,LineNumberTable
196 -keep public class * extends android.app.Service 200 -keep public class * extends android.app.Service
197 -keep public class com.google.vending.licensing.ILicensingService 201 -keep public class com.google.vending.licensing.ILicensingService
198 -keep public class com.android.vending.licensing.ILicensingService 202 -keep public class com.android.vending.licensing.ILicensingService
199 -keep class com.gumptech.sdk.view.* {*;} 203 -keep class com.gumptech.sdk.view.* {*;}
200 -keep class com.gumptech.sdk.web.* {*;} 204 -keep class com.gumptech.sdk.web.* {*;}
201 -keep class com.gumptech.sdk.bridge.impl.*{*;} 205 -keep class com.gumptech.sdk.bridge.impl.*{*;}
202 206
203 207
204 使得混淆的时候不会影响SDK的命名空间。 208 使得混淆的时候不会影响SDK的命名空间。