Commit 5553a3ffd4dd7f16c071b4f6c3fdf44c8d55ad8c

Authored by kingzh
1 parent e877dd7d02
Exists in master

版本4.8.6

Showing 1 changed file with 160 additions and 128 deletions Inline Diff

1 # Gump SDK 4 for Android接入文档 1 # Gump SDK 4 for Android接入文档
2 2
3 3 V4.8.6
4 V4.8.0 4 2020年08月6日
5 2020年01月15日
6 5
7 6
8 ## 版本概述 7 ## 版本概述
9 8
10 此版本为使用AndroidStudio开发的版本,使用aar的方式提供sdk接入包,并使用gradle在线依赖方式,aar内别不包含依赖包,请按此文档描述接入. 9 此版本为使用AndroidStudio开发的版本,使用aar的方式提供sdk接入包,并使用gradle在线依赖方式,aar内别不包含依赖包,请按此文档描述接入.
11 10
12 此SDK适用android4.0以上系统. 11 此SDK适用android4.0以上系统.
13 12
14 ## 第一章 接入指南 13 ## 第一章 接入指南
15 ### 1.依赖导入 14 ### 1.依赖导入
16 配置gradle,以下为必须项 15 配置gradle,以下为必须项
17 16
18 repositories{ 17 ```groovy
19 maven{ 18 repositories{
20 url "http://117.50.8.198:8081/nexus/content/repositories/sdk" 19 maven{
21 } 20 url "http://117.50.8.198:8081/nexus/content/repositories/sdk"
22 } 21 }
23 dependencies { 22 }
24 implementation 'com.gumptech.sdk:GameSDK:4.8.0' 23 dependencies {
24 implementation 'com.gumptech.sdk:GameSDK:4.8.6'
25
26 }
27 ```
25 28
26 }
27
28 29
29 ### 2.修改AndroidManifest.xml文件 30 ### 2.修改AndroidManifest.xml文件
30 首先添加必要的权限,如下所示: 31 首先添加必要的权限,如下所示:
31 32
32 <uses-permission android:name="android.permission.INTERNET" /> 33 ```xml
33 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 34 <uses-permission android:name="android.permission.INTERNET" />
34 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 35 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
35 <!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. --> 36 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
36 <uses-permission android:name="com.android.vending.BILLING" /> 37 <!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. -->
37 38 <uses-permission android:name="com.android.vending.BILLING" />
39 ```
40
38 其次注册相应的Activity,具体如下: 41 其次注册相应的Activity,具体如下:
39 42
40 <activity 43 ```xml
41 android:name="com.gump.game.sdk.PassportActivity" 44 <activity
42 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout" 45 android:name="com.gump.game.sdk.PassportActivity"
43 android:launchMode="singleTask"
44 android:theme="@style/Theme.Origin" //登录界面的主题,可选项:Theme.Origin\Theme.Orange\Theme.Blue\Theme.Pink
45 android:screenOrientation="behind"
46 android:windowSoftInputMode="stateAlwaysHidden|adjustPan">
47 </activity>
48 <activity
49 android:name="com.gump.game.sdk.RechargeActivity"
50 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout" 46 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
51 android:launchMode="singleTask" 47 android:launchMode="singleTask"
52 android:screenOrientation="behind" 48 android:theme="@style/Theme.Origin" //登录界面的主题,可选项:Theme.Origin\Theme.Orange\Theme.Blue\Theme.Pink
53 android:theme="@style/Theme.Translucent" > 49 android:screenOrientation="behind"
54 <intent-filter> 50 android:windowSoftInputMode="stateAlwaysHidden|adjustPan">
55 <category android:name="android.intent.category.DEFAULT" /> 51 </activity>
56 <action android:name="android.intent.action.VIEW" /> 52 <activity
57 <category android:name="android.intent.category.BROWSABLE" /> 53 android:name="com.gump.game.sdk.RechargeActivity"
58 <data 54 android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
59 android:host="com.gump.sdk" 55 android:launchMode="singleTask"
60 android:scheme="gump+游戏的appId" /> 56 android:screenOrientation="behind"
61 </intent-filter> 57 android:theme="@style/Theme.Translucent" >
62 </activity> 58 <intent-filter>
63 59 <category android:name="android.intent.category.DEFAULT" />
60 <action android:name="android.intent.action.VIEW" />
61 <category android:name="android.intent.category.BROWSABLE" />
62 <data
63 android:host="com.gump.sdk"
64 android:scheme="gump+游戏的appId" />
65 </intent-filter>
66 </activity>
67 ```
68
64 ### 3.向Gump平台索要游戏ID(AppID),完成代码接入 69 ### 3.向Gump平台索要游戏ID(AppID),完成代码接入
65 正式开始接入逻辑代码前,先介绍下一些附加设置,以方便代码接入 70 正式开始接入逻辑代码前,先介绍下一些附加设置,以方便代码接入
66 71
67 *是否打印debug日志 72 *是否打印debug日志
68 73
69 GameSDK.getSettings().enableDebugLogging(true); 74 ```java
70 75 GameSDK.getSettings().enableDebugLogging(true);
76 ```
77
71 *设置需要启用的第三方登录,参数可选类型见第二章:[第三方登录平台](http://repository.gumptech.com:81/document/gamesdk4-android/blob/master/IntegrationGuide.md#1-third_plat) 字段说明 78 *设置需要启用的第三方登录,参数可选类型见第二章:[第三方登录平台](http://repository.gumptech.com:81/document/gamesdk4-android/blob/master/IntegrationGuide.md#1-third_plat) 字段说明
72 79
73 GameSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_*); 80 ```java
81 GameSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_*);
82 ```
74 83
75 84
76 #### 1.调用GameSDK前需要执行初始化。 85 #### 1.调用GameSDK前需要执行初始化。
77 86
78 若不需要分渠道 87 若不需要分渠道
79 88
80 GameSDK.init(Context,Appid); 89 ```java
90 GameSDK.init(Context,Appid);
91 ```
81 如果需要定义渠道,必须使用如下方法 92 如果需要定义渠道,必须使用如下方法
82 93
83 GameSDK.init(Context,Appid,ChannelId); 94 ```java
95 GameSDK.init(Context,Appid,ChannelId);
96 ```
84 97
85 98
86 #### 2.调用GameSDK的登录方法,将执行登录流程,需要一个Activity实例作参数 99 #### 2.调用GameSDK的登录方法,将执行登录流程,需要一个Activity实例作参数
87 100
88 GameSDK.login(Activity); 101 ```java
102 GameSDK.login(Activity);
103 ```
89 在此之前,开发者需要注册用户状态监听以接受用户的登录/登出通知,通常如下: 104 在此之前,开发者需要注册用户状态监听以接受用户的登录/登出通知,通常如下:
90 105
91 GameSDK.setUserStateListener(new LoginStateListener() { 106 ```java
92 @Override 107 GameSDK.setUserStateListener(new LoginStateListener() {
93 public void onLoginSuccess(GumpUser gumpUser) { 108 @Override
94 //登录成功,用户信息包含在GumpUser对象里 109 public void onLoginSuccess(GumpUser gumpUser) {
95 } 110 //登录成功,用户信息包含在GumpUser对象里
96 111 }
97 @Override 112
98 public void onLoginFailed(int code, String msg) { 113 @Override
99 //登录出错,根据错误码和信息判断错误类型 114 public void onLoginFailed(int code, String msg) {
100 Toast.makeText(MainActivity.this, "Login failed:code="+code+",message="+msg, Toast.LENGTH_SHORT).show(); 115 //登录出错,根据错误码和信息判断错误类型
101 } 116 Toast.makeText(MainActivity.this, "Login failed:code="+code+",message="+msg, Toast.LENGTH_SHORT).show();
102 117 }
103 @Override 118
104 public void onLoginCanceled() { 119 @Override
105 //用户取消登录 120 public void onLoginCanceled() {
106 Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show(); 121 //用户取消登录
107 } 122 Toast.makeText(MainActivity.this, "operate be canceled", Toast.LENGTH_SHORT).show();
108 123 }
109 @Override 124
110 public void onLogout() { 125 @Override
111 //用户登出 126 public void onLogout() {
112 127 //用户登出
113 } 128
114 @Override 129 }
115 public void onPermissionDenied(String[] deniedPermissions) { 130 @Override
116 //用户未授予权限,参数为没有获取的权限 131 public void onPermissionDenied(String[] deniedPermissions) {
117 } 132 //用户未授予权限,参数为没有获取的权限
118 }); 133 }
119 134 });
135 ```
136
120 如上成功登录后收到的GumpUser对象包含以下信息 137 如上成功登录后收到的GumpUser对象包含以下信息
121 138
122 gumpUser.getUid();//获取用户的userid,此Id标识唯一用户! 139 ```java
123 gumpUser.getAccountType();//用户类型,此类型数据可从GumpPreference常量获取 140 gumpUser.getUid();//获取用户的userid,此Id标识唯一用户!
124 gumpUser.getSessionKey();//登录的sessionKey对象,获取sessionKey字符串请使用此对象的getToken()方法 141 gumpUser.getAccountType();//用户类型,此类型数据可从GumpPreference常量获取
142 gumpUser.getSessionKey();//登录的sessionKey对象,获取sessionKey字符串请使用此对象的getToken()方法
143 ```
125 144
126 #### 3.支付功能 145 #### 3.支付功能
127 调用支付前需先判断支付状态,根据状态调用支付方法 146 调用支付前需先判断支付状态,根据状态调用支付方法
128 147
129 GameSDK.iapUsable(Activity, serverId, roleId, new ResultCallback() { 148 ```java
130 @Override 149 GameSDK.iapUsable(Activity, serverId, roleId, new ResultCallback() {
131 public void onResult(boolean result) { 150 @Override
132 if(result){ 151 public void onResult(boolean result) {
133 //调用GameSDK.iap 152 if(result){
134 }else{ 153 //调用GameSDK.iap
135 //调用GameSDK.pay 154 }else{
136 } 155 //调用GameSDK.pay
137 } 156 }
138 }); 157 }
158 });
159 ```
139 160
140 1)调用GameSDK.pay 161 1)调用GameSDK.pay
141 162
142 Bundle payInfo = new Bundle(); 163 ```java
143 payInfo.putString("product", "元宝"); 164 Bundle payInfo = new Bundle();
144 payInfo.putFloat("amount", 40.0f); 165 payInfo.putString("product", "元宝");
145 payInfo.putString("extraInfo", "This is demo!"); 166 payInfo.putFloat("amount", 40.0f);
146 payInfo.putString("serverId", "B4003"); 167 payInfo.putString("extraInfo", "This is demo!");
147 payInfo.putString("roleId", "10010"); 168 payInfo.putString("serverId", "B4003");
148 payInfo.putString("currency","currency"); 169 payInfo.putString("roleId", "10010");
149 GumpSDK.pay(MainActivity.this, payInfo,PurchaseCallback); 170 payInfo.putString("currency","currency");
171 GumpSDK.pay(MainActivity.this, payInfo,PurchaseCallback);
172 ```
150 调用pay方法时,必须穿入一个bundle对象,包含如上字段,所有字段必须全部包含 173 调用pay方法时,必须穿入一个bundle对象,包含如上字段,所有字段必须全部包含
151 174
152 175
153 2)IAP支付 176 2)IAP支付
154 177
155 Bundle payInfo = new Bundle(); 178 ```java
156 payInfo.putString("product", "gp_skuId"); 179 Bundle payInfo = new Bundle();
157 payInfo.putFloat("amount", 0.1f); 180 payInfo.putString("product", "gp_skuId");
158 payInfo.putString("extraInfo", "This is demo!"); 181 payInfo.putFloat("amount", 0.1f);
159 payInfo.putString("serverId", "100"); 182 payInfo.putString("extraInfo", "This is demo!");
160 payInfo.putString("roleId","100123"); 183 payInfo.putString("serverId", "100");
161 GumpSDK.iap(MainActivity.this, payInfo, PurchaseCallback); 184 payInfo.putString("roleId","100123");
162 185 GumpSDK.iap(MainActivity.this, payInfo, PurchaseCallback);
186 ```
187
163 3)PurchaseCallback为支付状态回调接口,此接口含有3个方法 188 3)PurchaseCallback为支付状态回调接口,此接口含有3个方法
164 189
165 @Override 190 ```java
166 public void onPurchaseCompleted() { 191 @Override
167 Log.i(TAG,"purchase completed"); 192 public void onPurchaseCompleted() {
168 } 193 Log.i(TAG,"purchase completed");
194 }
169 195
170 @Override 196 @Override
171 public void onPurchaseError(int code, String msg) { 197 public void onPurchaseError(int code, String msg) {
172 Log.i(TAG,"purchase error"); 198 Log.i(TAG,"purchase error");
173 } 199 }
200
201 @Override
202 public void onPurchaseCanceled() {
203 Log.i(TAG,"purchase canceled");
204 }
205 ```
174 206
175 @Override
176 public void onPurchaseCanceled() {
177 Log.i(TAG,"purchase canceled");
178 }
179
180 #### 4.注销登录 207 #### 4.注销登录
181 208
182 GameSDK.logout(Activity); 209 ```java
210 GameSDK.logout(Activity);
211 ```
183 当此方法调用后,用户退出登录,并会通过LoginStateListener接口通知调用程序!为了便于用户切换登录账户,请在游戏内提供用户注销的触发按钮 212 当此方法调用后,用户退出登录,并会通过LoginStateListener接口通知调用程序!为了便于用户切换登录账户,请在游戏内提供用户注销的触发按钮
184 #### 5.运营开关接口,若需要接入,会有我方运营人员提出需求,否则不需要接入(若对此接口不知所云,即可认为不需要接入,请自行忽略) 213 #### 5.运营开关接口,若需要接入,会有我方运营人员提出需求,否则不需要接入(若对此接口不知所云,即可认为不需要接入,请自行忽略)
185 214
186 GameSDK.inspectRiskLevel(this, new ResultCallback() { 215 ```java
187 @Override 216 GameSDK.inspectRiskLevel(this, new ResultCallback() {
188 public void onResult(boolean result) { 217 @Override
189 Log.i(TAG,result?"There is some risks":"Nothing is risk"); 218 public void onResult(boolean result) {
190 } 219 Log.i(TAG,result?"There is some risks":"Nothing is risk");
191 }); 220 }
192 221 });
222 ```
223
193 ## 第二章 常量字段与代码 224 ## 第二章 常量字段与代码
194 ### 1.第三方登录平台(third_plat) 225 ### 1.第三方登录平台(third_plat)
195 | 常量字段 | 说明 | 226 | 常量字段 | 说明 |
196 |--------------------------------|--------------| 227 |--------------------------------|--------------|
197 |SDKSettings.THIRD_SUPPORT_FB | Facebook登录 | 228 |SDKSettings.THIRD_SUPPORT_FB | Facebook登录 |
198 |SDKSettings.THIRD_SUPPORT_GOOGLE| Google登录 | 229 |SDKSettings.THIRD_SUPPORT_GOOGLE| Google登录 |
199 |SDKSettings.THIRD_SUPPORT_LINE | Line登录 | 230 |SDKSettings.THIRD_SUPPORT_LINE | Line登录 |
200 231
201 ### 2.登录账户类型 232 ### 2.登录账户类型
202 | 常量字段 | 说明 | 233 | 常量字段 | 说明 |
203 |-------------------------------------|--------------| 234 |-------------------------------------|--------------|
204 |GumpPreference.ACCOUNT_TYPE_FB | Facebook用户 | 235 |GumpPreference.ACCOUNT_TYPE_FB | Facebook用户 |
205 |GumpPreference.ACCOUNT_TYPE_REG | Gump注册用户 | 236 |GumpPreference.ACCOUNT_TYPE_REG | Gump注册用户 |
206 |GumpPreference.ACCOUNT_TYPE_QUICK_REG| 游客 | 237 |GumpPreference.ACCOUNT_TYPE_QUICK_REG| 游客 |
207 |GumpPreference.ACCOUNT_TYPE_GOOGLE | Google用户 | 238 |GumpPreference.ACCOUNT_TYPE_GOOGLE | Google用户 |
208 |GumpPreference.ACCOUNT_TYPE_LINE | Line用户 | 239 |GumpPreference.ACCOUNT_TYPE_LINE | Line用户 |
209 240
210 241
211 242
212 ## 第三章 常见问题 243 ## 第三章 常见问题