Blame view

README.md 8.11 KB
d3c7882c1   赵康   first commit:4.+
1
  # Gump SDK 4 for Android接入文档
5553a3ffd   kingzh   版本4.8.6
2
3
  V4.8.6       
  2020年08月6日
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
23
24
25
26
  ```groovy
  repositories{
      maven{
      	url "http://117.50.8.198:8081/nexus/content/repositories/sdk"
  	}
  }
  dependencies {
      implementation 'com.gumptech.sdk:GameSDK:4.8.6'
  
  }
  ```
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
35
36
37
  ```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"/>
  <!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. -->
  <uses-permission android:name="com.android.vending.BILLING" />
  ```
d3c7882c1   赵康   first commit:4.+
38
  其次注册相应的Activity,具体如下:  
5553a3ffd   kingzh   版本4.8.6
39
40
41
  ```xml
  <activity
          android:name="com.gump.game.sdk.PassportActivity"
d3c7882c1   赵康   first commit:4.+
42
43
          android:configChanges="orientation|screenSize|keyboardHidden|keyboard|screenLayout"
          android:launchMode="singleTask"
5553a3ffd   kingzh   版本4.8.6
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
          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
64
  ### 3.向Gump平台索要游戏ID(AppID),完成代码接入     
d3c7882c1   赵康   first commit:4.+
65
66
67
  正式开始接入逻辑代码前,先介绍下一些附加设置,以方便代码接入  
  
  *是否打印debug日志    
5553a3ffd   kingzh   版本4.8.6
68
69
70
  ```java
  GameSDK.getSettings().enableDebugLogging(true); 
  ```
7bbc228ed   赵康   fix error in links
71
  *设置需要启用的第三方登录,参数可选类型见第二章:[第三方登录平台](http://repository.gumptech.com:81/document/gamesdk4-android/blob/master/IntegrationGuide.md#1-third_plat) 字段说明
9db6d7eb0   赵康   version4.2.0:upda...
72

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

656f5f9fd   赵康   merge payment v3 ...
77

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

d3c7882c1   赵康   first commit:4.+
89

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

5553a3ffd   kingzh   版本4.8.6
92
93
94
  ```java
  GameSDK.login(Activity);  
  ```
d3c7882c1   赵康   first commit:4.+
95
  在此之前,开发者需要注册用户状态监听以接受用户的登录/登出通知,通常如下:    
5553a3ffd   kingzh   版本4.8.6
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
124
125
  ```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.+
126
  如上成功登录后收到的GumpUser对象包含以下信息  
5553a3ffd   kingzh   版本4.8.6
127
128
129
130
131
  ```java
  gumpUser.getUid();//获取用户的userid,此Id标识唯一用户!  
  gumpUser.getAccountType();//用户类型,此类型数据可从GumpPreference常量获取  
  gumpUser.getSessionKey();//登录的sessionKey对象,获取sessionKey字符串请使用此对象的getToken()方法  
  ```
d3c7882c1   赵康   first commit:4.+
132

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

5553a3ffd   kingzh   版本4.8.6
136
137
138
139
140
141
142
143
144
145
146
147
  ```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:增加支付弹窗...
148

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

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

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

5553a3ffd   kingzh   版本4.8.6
183
184
185
186
187
188
189
190
191
192
  @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.+
193

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

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

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

d42a06680   赵康   remove wechat log...
227

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