Blame view

README.md 8.26 KB
d3c7882c1   赵康   first commit:4.+
1
  # Gump SDK 4 for Android接入文档
12a4c3bb0   lixiang   升级google5.0支付
2
  V4.9.5       
d06621678   lixiang   日期修改
3
  2023年09月08日
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 {
12a4c3bb0   lixiang   升级google5.0支付
23
      implementation 'com.gumptech.sdk:GameSDK:4.9.5'
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"/>
12a4c3bb0   lixiang   升级google5.0支付
35
  <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
5553a3ffd   kingzh   版本4.8.6
36
  ```
d3c7882c1   赵康   first commit:4.+
37
  其次注册相应的Activity,具体如下:  
5553a3ffd   kingzh   版本4.8.6
38
39
40
  ```xml
  <activity
          android:name="com.gump.game.sdk.PassportActivity"
d3c7882c1   赵康   first commit:4.+
41
42
          android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
          android:launchMode="singleTask"
5553a3ffd   kingzh   版本4.8.6
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
          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
63
  ### 3.向Gump平台索要游戏ID(AppID),完成代码接入     
d3c7882c1   赵康   first commit:4.+
64
65
66
  正式开始接入逻辑代码前,先介绍下一些附加设置,以方便代码接入  
  
  *是否打印debug日志    
5553a3ffd   kingzh   版本4.8.6
67
68
69
  ```java
  GameSDK.getSettings().enableDebugLogging(true); 
  ```
7bbc228ed   赵康   fix error in links
70
  *设置需要启用的第三方登录,参数可选类型见第二章:[第三方登录平台](http://repository.gumptech.com:81/document/gamesdk4-android/blob/master/IntegrationGuide.md#1-third_plat) 字段说明
9db6d7eb0   赵康   version4.2.0:upda...
71

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

656f5f9fd   赵康   merge payment v3 ...
76

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

d3c7882c1   赵康   first commit:4.+
88

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

5553a3ffd   kingzh   版本4.8.6
91
92
93
  ```java
  GameSDK.login(Activity);  
  ```
d3c7882c1   赵康   first commit:4.+
94
  在此之前,开发者需要注册用户状态监听以接受用户的登录/登出通知,通常如下:    
5553a3ffd   kingzh   版本4.8.6
95
96
  ```java
  GameSDK.setUserStateListener(new LoginStateListener() {
442078de6   赵康   add createUser of...
97
98
99
100
101
102
103
      
       	@Override
          public void onCreateUser() {
             //新用户注册,用于事件打点。勿阻塞此方法,否则影响登录流程
              Log.i(TAG,"Someone registers an new Account");
          }
      
5553a3ffd   kingzh   版本4.8.6
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
          @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.+
132
  如上成功登录后收到的GumpUser对象包含以下信息  
5553a3ffd   kingzh   版本4.8.6
133
134
135
136
137
  ```java
  gumpUser.getUid();//获取用户的userid,此Id标识唯一用户!  
  gumpUser.getAccountType();//用户类型,此类型数据可从GumpPreference常量获取  
  gumpUser.getSessionKey();//登录的sessionKey对象,获取sessionKey字符串请使用此对象的getToken()方法  
  ```
d3c7882c1   赵康   first commit:4.+
138

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

5553a3ffd   kingzh   版本4.8.6
142
143
144
145
146
147
148
149
150
151
152
153
  ```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:增加支付弹窗...
154

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

5553a3ffd   kingzh   版本4.8.6
157
158
159
160
161
162
163
164
165
166
  ```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);
  ```
442078de6   赵康   add createUser of...
167
  调用pay方法时,必须传入一个bundle对象,包含如上字段,所有字段必须全部包含  
d3c7882c1   赵康   first commit:4.+
168
169
      
      
5defbc2c6   赵康   version4.2.0:upda...
170
  2)IAP支付   
607ad49c5   赵康   分离iap支付
171
      
442078de6   赵康   add createUser of...
172

5553a3ffd   kingzh   版本4.8.6
173
174
175
176
177
178
179
180
181
  ```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支付
182
  3)PurchaseCallback为支付状态回调接口,此接口含有3个方法  
d3c7882c1   赵康   first commit:4.+
183

5553a3ffd   kingzh   版本4.8.6
184
185
186
187
188
  ```java
  @Override
  public void onPurchaseCompleted() {
      Log.i(TAG,"purchase completed");
  }
d3c7882c1   赵康   first commit:4.+
189

5553a3ffd   kingzh   版本4.8.6
190
191
192
193
194
195
196
197
198
199
  @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.+
200

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

5553a3ffd   kingzh   版本4.8.6
203
204
205
  ```java
  GameSDK.logout(Activity);
  ```
ce7352ea7   赵康   update version to...
206
207
  当此方法调用后,用户退出登录,并会通过LoginStateListener接口通知调用程序!为了便于用户切换登录账户,请在游戏内提供用户注销的触发按钮   
  #### 5.运营开关接口,若需要接入,会有我方运营人员提出需求,否则不需要接入(若对此接口不知所云,即可认为不需要接入,请自行忽略)
5553a3ffd   kingzh   版本4.8.6
208
209
210
211
212
213
214
215
216
  
  ```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...
217
  ## 第二章 常量字段与代码
441ba61c5   赵康   update format
218
  ### 1.第三方登录平台(third_plat)
472513368   赵康   取消游客绑定提醒
219
  	|         常量字段                |    说明       |
441ba61c5   赵康   update format
220
  	|--------------------------------|--------------|
472513368   赵康   取消游客绑定提醒
221
222
223
  	|SDKSettings.THIRD_SUPPORT_FB    | Facebook登录  |
  	|SDKSettings.THIRD_SUPPORT_GOOGLE| Google登录    |
  	|SDKSettings.THIRD_SUPPORT_LINE  | Line登录      |
d42a06680   赵康   remove wechat log...
224

43932caac   赵康   update for UI,add...
225
  ### 2.登录账户类型
472513368   赵康   取消游客绑定提醒
226
227
228
229
  	|               常量字段               |      说明     |
  	|-------------------------------------|--------------|
  	|GumpPreference.ACCOUNT_TYPE_FB       | Facebook用户  |
  	|GumpPreference.ACCOUNT_TYPE_REG      | Gump注册用户  |
f97711df6   赵康   the demo for sdk ...
230
  	|GumpPreference.ACCOUNT_TYPE_QUICK_REG| 游客          |
472513368   赵康   取消游客绑定提醒
231
232
  	|GumpPreference.ACCOUNT_TYPE_GOOGLE   | Google用户    |
  	|GumpPreference.ACCOUNT_TYPE_LINE     | Line用户      |
f97711df6   赵康   the demo for sdk ...
233

d42a06680   赵康   remove wechat log...
234

43932caac   赵康   update for UI,add...
235
236
  
  ## 第三章 常见问题      
d3c7882c1   赵康   first commit:4.+
237
238
239
240
241
242
243
244
245
  ### 问题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\
246
247
      -keep class com.gump.game.sdk.view.* {*;}
      -keep class com.gump.game.sdk.web.* {*;}
5553a3ffd   kingzh   版本4.8.6
248
249
250
d3c7882c1   赵康   first commit:4.+
251
  使得混淆的时候不会影响SDK的命名空间。