Blame view

README.md 7.96 KB
d3c7882c1   赵康   first commit:4.+
1
  # Gump SDK 4 for Android接入文档
d495d19f8   赵康   upgrade to 4.9.0
2
3
  V4.9.0       
  2021年06月21日
d3c7882c1   赵康   first commit:4.+
4

d3c7882c1   赵康   first commit:4.+
5

4112d606c   赵康   optimize document
6
  ## 版本概述
d3c7882c1   赵康   first commit:4.+
7

e877dd7d0   赵康   重构版本4.8.0\
8
  此版本为使用AndroidStudio开发的版本,使用aar的方式提供sdk接入包,并使用gradle在线依赖方式,aar内别不包含依赖包,请按此文档描述接入.
d3c7882c1   赵康   first commit:4.+
9

c4a5d1b80   赵康   update to version...
10
  此SDK适用android4.0以上系统.
d3c7882c1   赵康   first commit:4.+
11
12
  
  ## 第一章  接入指南
6a217e5ca   赵康   version4.5.0
13
14
  ### 1.依赖导入    
  配置gradle,以下为必须项    
d3c7882c1   赵康   first commit:4.+
15

5553a3ffd   kingzh   版本4.8.6
16
17
18
19
20
21
22
  ```groovy
  repositories{
      maven{
      	url "http://117.50.8.198:8081/nexus/content/repositories/sdk"
  	}
  }
  dependencies {
d495d19f8   赵康   upgrade to 4.9.0
23
      implementation 'com.gumptech.sdk:GameSDK:4.9.0'
5553a3ffd   kingzh   版本4.8.6
24
25
26
  
  }
  ```
1e361ab0f   赵康   clear conflicts
27

d3c7882c1   赵康   first commit:4.+
28

4112d606c   赵康   optimize document
29
  ### 2.修改AndroidManifest.xml文件
d3c7882c1   赵康   first commit:4.+
30
  首先添加必要的权限,如下所示:  
5553a3ffd   kingzh   版本4.8.6
31
32
33
34
  ```xml
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
5553a3ffd   kingzh   版本4.8.6
35
  ```
d3c7882c1   赵康   first commit:4.+
36
  其次注册相应的Activity,具体如下:  
5553a3ffd   kingzh   版本4.8.6
37
38
39
  ```xml
  <activity
          android:name="com.gump.game.sdk.PassportActivity"
d3c7882c1   赵康   first commit:4.+
40
41
          android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
          android:launchMode="singleTask"
5553a3ffd   kingzh   版本4.8.6
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
          android:theme="@style/Theme.Origin" //登录界面的主题,可选项:Theme.Origin\Theme.Orange\Theme.Blue\Theme.Pink
          android:screenOrientation="behind"
          android:windowSoftInputMode="stateAlwaysHidden|adjustPan">
  </activity>
  <activity
      android:name="com.gump.game.sdk.RechargeActivity"
      android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
      android:launchMode="singleTask"
  	android:screenOrientation="behind"
      android:theme="@style/Theme.Translucent" >
      <intent-filter>
          <category android:name="android.intent.category.DEFAULT" />
          <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.BROWSABLE" />
          <data
              android:host="com.gump.sdk"
              android:scheme="gump+游戏的appId" />
      </intent-filter>
  </activity>
  ```
4112d606c   赵康   optimize document
62
  ### 3.向Gump平台索要游戏ID(AppID),完成代码接入     
d3c7882c1   赵康   first commit:4.+
63
64
65
  正式开始接入逻辑代码前,先介绍下一些附加设置,以方便代码接入  
  
  *是否打印debug日志    
5553a3ffd   kingzh   版本4.8.6
66
67
68
  ```java
  GameSDK.getSettings().enableDebugLogging(true); 
  ```
7bbc228ed   赵康   fix error in links
69
  *设置需要启用的第三方登录,参数可选类型见第二章:[第三方登录平台](http://repository.gumptech.com:81/document/gamesdk4-android/blob/master/IntegrationGuide.md#1-third_plat) 字段说明
9db6d7eb0   赵康   version4.2.0:upda...
70

5553a3ffd   kingzh   版本4.8.6
71
72
73
  ```java
  GameSDK.getSettings().requestThirdSupport(SDKSettings.THIRD_SUPPORT_*);
  ```
9db6d7eb0   赵康   version4.2.0:upda...
74

656f5f9fd   赵康   merge payment v3 ...
75

e877dd7d0   赵康   重构版本4.8.0\
76
  #### 1.调用GameSDK前需要执行初始化。     
d3c7882c1   赵康   first commit:4.+
77
78
  
  若不需要分渠道      
5553a3ffd   kingzh   版本4.8.6
79
80
81
  ```java
  GameSDK.init(Context,Appid);   
  ```
d3c7882c1   赵康   first commit:4.+
82
  如果需要定义渠道,必须使用如下方法       
5553a3ffd   kingzh   版本4.8.6
83
84
85
  ```java
  GameSDK.init(Context,Appid,ChannelId);   
  ```
d3c7882c1   赵康   first commit:4.+
86

d3c7882c1   赵康   first commit:4.+
87

e877dd7d0   赵康   重构版本4.8.0\
88
  #### 2.调用GameSDK的登录方法,将执行登录流程,需要一个Activity实例作参数       
d3c7882c1   赵康   first commit:4.+
89

5553a3ffd   kingzh   版本4.8.6
90
91
92
  ```java
  GameSDK.login(Activity);  
  ```
d3c7882c1   赵康   first commit:4.+
93
  在此之前,开发者需要注册用户状态监听以接受用户的登录/登出通知,通常如下:    
5553a3ffd   kingzh   版本4.8.6
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
  ```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) {
  		//用户未授予权限,参数为没有获取的权限
          }
      });
  ```
d3c7882c1   赵康   first commit:4.+
124
  如上成功登录后收到的GumpUser对象包含以下信息  
5553a3ffd   kingzh   版本4.8.6
125
126
127
128
129
  ```java
  gumpUser.getUid();//获取用户的userid,此Id标识唯一用户!  
  gumpUser.getAccountType();//用户类型,此类型数据可从GumpPreference常量获取  
  gumpUser.getSessionKey();//登录的sessionKey对象,获取sessionKey字符串请使用此对象的getToken()方法  
  ```
d3c7882c1   赵康   first commit:4.+
130

4112d606c   赵康   optimize document
131
  #### 3.支付功能  
e877dd7d0   赵康   重构版本4.8.0\
132
  调用支付前需先判断支付状态,根据状态调用支付方法  
4a6edc661   赵康   SDK v4.7.0:增加支付弹窗...
133

5553a3ffd   kingzh   版本4.8.6
134
135
136
137
138
139
140
141
142
143
144
145
  ```java
  GameSDK.iapUsable(Activity, serverId, roleId, new ResultCallback() {
                  @Override
                  public void onResult(boolean result) {
                      if(result){
  					//调用GameSDK.iap
  					}else{
  					//调用GameSDK.pay
  					}	
                  }
              });
  ```
4a6edc661   赵康   SDK v4.7.0:增加支付弹窗...
146

e877dd7d0   赵康   重构版本4.8.0\
147
  1)调用GameSDK.pay     
d3c7882c1   赵康   first commit:4.+
148

5553a3ffd   kingzh   版本4.8.6
149
150
151
152
153
154
155
156
157
158
  ```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);
  ```
4a6edc661   赵康   SDK v4.7.0:增加支付弹窗...
159
  调用pay方法时,必须穿入一个bundle对象,包含如上字段,所有字段必须全部包含  
d3c7882c1   赵康   first commit:4.+
160
161
      
      
5defbc2c6   赵康   version4.2.0:upda...
162
  2)IAP支付   
607ad49c5   赵康   分离iap支付
163
      
5553a3ffd   kingzh   版本4.8.6
164
165
166
167
168
169
170
171
172
  ```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);
  ```
607ad49c5   赵康   分离iap支付
173
  3)PurchaseCallback为支付状态回调接口,此接口含有3个方法  
d3c7882c1   赵康   first commit:4.+
174

5553a3ffd   kingzh   版本4.8.6
175
176
177
178
179
  ```java
  @Override
  public void onPurchaseCompleted() {
      Log.i(TAG,"purchase completed");
  }
d3c7882c1   赵康   first commit:4.+
180

5553a3ffd   kingzh   版本4.8.6
181
182
183
184
185
186
187
188
189
190
  @Override
  public void onPurchaseError(int code, String msg) {
      Log.i(TAG,"purchase error");
  }
  
  @Override
  public void onPurchaseCanceled() {
      Log.i(TAG,"purchase canceled");
  }
  ```
d3c7882c1   赵康   first commit:4.+
191

4112d606c   赵康   optimize document
192
  #### 4.注销登录      
d3c7882c1   赵康   first commit:4.+
193

5553a3ffd   kingzh   版本4.8.6
194
195
196
  ```java
  GameSDK.logout(Activity);
  ```
ce7352ea7   赵康   update version to...
197
198
  当此方法调用后,用户退出登录,并会通过LoginStateListener接口通知调用程序!为了便于用户切换登录账户,请在游戏内提供用户注销的触发按钮   
  #### 5.运营开关接口,若需要接入,会有我方运营人员提出需求,否则不需要接入(若对此接口不知所云,即可认为不需要接入,请自行忽略)
5553a3ffd   kingzh   版本4.8.6
199
200
201
202
203
204
205
206
207
  
  ```java
  GameSDK.inspectRiskLevel(this, new ResultCallback() {
          @Override
          public void onResult(boolean result) {
              Log.i(TAG,result?"There is some risks":"Nothing is risk");
          }
      });
  ```
43932caac   赵康   update for UI,add...
208
  ## 第二章 常量字段与代码
441ba61c5   赵康   update format
209
  ### 1.第三方登录平台(third_plat)
472513368   赵康   取消游客绑定提醒
210
  	|         常量字段                |    说明       |
441ba61c5   赵康   update format
211
  	|--------------------------------|--------------|
472513368   赵康   取消游客绑定提醒
212
213
214
  	|SDKSettings.THIRD_SUPPORT_FB    | Facebook登录  |
  	|SDKSettings.THIRD_SUPPORT_GOOGLE| Google登录    |
  	|SDKSettings.THIRD_SUPPORT_LINE  | Line登录      |
d42a06680   赵康   remove wechat log...
215

43932caac   赵康   update for UI,add...
216
  ### 2.登录账户类型
472513368   赵康   取消游客绑定提醒
217
218
219
220
  	|               常量字段               |      说明     |
  	|-------------------------------------|--------------|
  	|GumpPreference.ACCOUNT_TYPE_FB       | Facebook用户  |
  	|GumpPreference.ACCOUNT_TYPE_REG      | Gump注册用户  |
f97711df6   赵康   the demo for sdk ...
221
  	|GumpPreference.ACCOUNT_TYPE_QUICK_REG| 游客          |
472513368   赵康   取消游客绑定提醒
222
223
  	|GumpPreference.ACCOUNT_TYPE_GOOGLE   | Google用户    |
  	|GumpPreference.ACCOUNT_TYPE_LINE     | Line用户      |
f97711df6   赵康   the demo for sdk ...
224

d42a06680   赵康   remove wechat log...
225

43932caac   赵康   update for UI,add...
226
227
  
  ## 第三章 常见问题      
d3c7882c1   赵康   first commit:4.+
228
229
230
231
232
233
234
235
236
  ### 问题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
e877dd7d0   赵康   重构版本4.8.0\
237
238
      -keep class com.gump.game.sdk.view.* {*;}
      -keep class com.gump.game.sdk.web.* {*;}
5553a3ffd   kingzh   版本4.8.6
239
240
241
d3c7882c1   赵康   first commit:4.+
242
  使得混淆的时候不会影响SDK的命名空间。