Commit b71aaad8d2b9666cf087e92a9d237467348bb35d

Authored by 赵康
1 parent 45a81e4e87
Exists in master

增加图片

Showing 5 changed files with 1 additions and 27 deletions Inline Diff

1 1
2 2
3 3
4 4
5 5
6 6
7 # Gump Android SDK使用文档 7 # Gump Android SDK使用文档
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 接入手册 19 接入手册
20 V 1.5 20 V 1.5
21 2014年07月23日 21 2014年07月23日
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 ## 目录 30 ## 目录
31 31
32 第一章 接入指南 3 32 第一章 接入指南 3
33 配置环境 3 33 配置环境 3
34 1. 导入资源工程 3 34 1. 导入资源工程 3
35 2. 添加资源工程 4 35 2. 添加资源工程 4
36 3. 代码实现 5 36 3. 代码实现 5
37 第二章 常见问题 6 37 第二章 常见问题 6
38 问题1: 如何避免混淆对SDK的影响? 6 38 问题1: 如何避免混淆对SDK的影响? 6
39 39
40 40
41 41
42 42
43 43
44 44
45 45
46 46
47 47
48 48
49 49
50 50
51 51
52 52
53 53
54 54
55 55
56 56
57 57
58 58
59 59
60 60
61 61
62 62
63 ## 第一章 接入指南 63 ## 第一章 接入指南
64 配置环境 64 配置环境
65 65
66 本接口API 适用于Android2.2以上各版本Android平台。 66 本接口API 适用于Android2.2以上各版本Android平台。
67 1. 导入资源工程 67 1. 导入资源工程
68 1.将LoginSDK资源工程拷贝到工作空间,在eclipse中的导航栏右键弹出如图1画面,选择Import导入资源工程,如图1. 68 1.将LoginSDK资源工程拷贝到工作空间,在eclipse中的导航栏右键弹出如图1画面,选择Import导入资源工程,如图1.
69 69
70 70 -[](images/1.png)
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 图1 71 图1
98 72
99 73
100 74
101 75
102 76
103 77
104 2.导入工程后,右键此工程,在Properties->Android中选中此工程为library工程(勾选红色方框标识处)如图2。 78 2.导入工程后,右键此工程,在Properties->Android中选中此工程为library工程(勾选红色方框标识处)如图2。
105 79
106 80
107 81
108 82
109 83
110 84
111 85
112 86
113 87
114 88
115 89
116 90
117 91
118 92
119 93
120 94
121 图 2 95 图 2
122 2. 添加资源工程 96 2. 添加资源工程
123 添加资源工程为游戏项目的 library。右键游戏项目,在Properties->Android中点击Add添加资源工程为项目工程的library,结果如图3。 97 添加资源工程为游戏项目的 library。右键游戏项目,在Properties->Android中点击Add添加资源工程为项目工程的library,结果如图3。
124 98
125 99
126 100
127 101
128 102
129 103
130 104
131 105
132 106
133 107
134 108
135 109
136 图 3 110 图 3
137 111
138 注意:如果ADT版本低于14,ADT不支持jar包自动引入,请手动拷贝libs到您的工作 112 注意:如果ADT版本低于14,ADT不支持jar包自动引入,请手动拷贝libs到您的工作
139 空间。 113 空间。
140 114
141 Eclipse查看ADT版本号的方法: 115 Eclipse查看ADT版本号的方法:
142 Help==>About Eclips点击Android对应的图标就可以查看版本了. 116 Help==>About Eclips点击Android对应的图标就可以查看版本了.
143 如图,红色框部分就是ADT版本号。 117 如图,红色框部分就是ADT版本号。
144 118
145 119
146 120
147 121
148 122
149 123
150 124
151 125
152 126
153 127
154 128
155 129
156 3. 代码实现 130 3. 代码实现
157 1、 修改AndroidManifest.xml文件 131 1、 修改AndroidManifest.xml文件
158 首先添加必要的权限,如下所示: 132 首先添加必要的权限,如下所示:
159 <uses-permission android:name="android.permission.INTERNET" /> 133 <uses-permission android:name="android.permission.INTERNET" />
160 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 134 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
161 <uses-permission android:name="android.permission.BLUETOOTH" /> 135 <uses-permission android:name="android.permission.BLUETOOTH" />
162 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 136 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
163 <uses-permission android:name="android.permission.WRITE_SETTINGS"/> 137 <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
164 <uses-permission android:name="android.permission.GET_ACCOUNTS"/> 138 <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
165 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 139 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
166 <!-- for card.io card scanning --> 140 <!-- for card.io card scanning -->
167 <uses-permission android:name="android.permission.CAMERA" /> 141 <uses-permission android:name="android.permission.CAMERA" />
168 <uses-permission android:name="android.permission.VIBRATE" /> 142 <uses-permission android:name="android.permission.VIBRATE" />
169 <uses-feature android:name="android.hardware.camera" android:required="false" /> 143 <uses-feature android:name="android.hardware.camera" android:required="false" />
170 <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" /> 144 <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
171 <!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. --> 145 <!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. -->
172 <uses-permission android:name="com.android.vending.BILLING" /> 146 <uses-permission android:name="com.android.vending.BILLING" />
173 其次注册相应的Activity,具体如下: 147 其次注册相应的Activity,具体如下:
174 <activity 148 <activity
175 android:name="com.gumptech.sdk.ContainerActivity" 149 android:name="com.gumptech.sdk.ContainerActivity"
176 android:theme="@style/container_dialog" 150 android:theme="@style/container_dialog"
177 android:configChanges="orientation|screenLayout" > 151 android:configChanges="orientation|screenLayout" >
178 </activity> 152 </activity>
179 <activity 153 <activity
180 android:name="com.facebook.LoginActivity" 154 android:name="com.facebook.LoginActivity"
181 android:theme="@android:style/Theme.Translucent.NoTitleBar" > 155 android:theme="@android:style/Theme.Translucent.NoTitleBar" >
182 </activity> 156 </activity>
183 <activity 157 <activity
184 android:name="com.gumptech.sdk.PaymentActivity" 158 android:name="com.gumptech.sdk.PaymentActivity"
185 android:configChanges="orientation|screenLayout" 159 android:configChanges="orientation|screenLayout"
186 android:theme="@android:style/Theme.Translucent.NoTitleBar" > 160 android:theme="@android:style/Theme.Translucent.NoTitleBar" >
187 </activity> 161 </activity>
188 <!-- paypal --> 162 <!-- paypal -->
189 <service 163 <service
190 android:name="com.paypal.android.sdk.payments.PayPalService" 164 android:name="com.paypal.android.sdk.payments.PayPalService"
191 android:exported="false" /> 165 android:exported="false" />
192 166
193 <activity android:name="com.paypal.android.sdk.payments.PaymentActivity" /> 167 <activity android:name="com.paypal.android.sdk.payments.PaymentActivity" />
194 <activity android:name="com.paypal.android.sdk.payments.LoginActivity" /> 168 <activity android:name="com.paypal.android.sdk.payments.LoginActivity" />
195 <activity android:name="com.paypal.android.sdk.payments.PaymentMethodActivity" /> 169 <activity android:name="com.paypal.android.sdk.payments.PaymentMethodActivity" />
196 <activity android:name="com.paypal.android.sdk.payments.PaymentConfirmActivity" /> 170 <activity android:name="com.paypal.android.sdk.payments.PaymentConfirmActivity" />
197 <activity android:name="com.paypal.android.sdk.payments.PayPalFuturePaymentActivity" /> 171 <activity android:name="com.paypal.android.sdk.payments.PayPalFuturePaymentActivity" />
198 <activity android:name="com.paypal.android.sdk.payments.FuturePaymentConsentActivity" /> 172 <activity android:name="com.paypal.android.sdk.payments.FuturePaymentConsentActivity" />
199 <activity android:name="com.paypal.android.sdk.payments.FuturePaymentInfoActivity" /> 173 <activity android:name="com.paypal.android.sdk.payments.FuturePaymentInfoActivity" />
200 <activity 174 <activity
201 android:name="io.card.payment.CardIOActivity" 175 android:name="io.card.payment.CardIOActivity"
202 android:configChanges="keyboardHidden|orientation" /> 176 android:configChanges="keyboardHidden|orientation" />
203 <activity android:name="io.card.payment.DataEntryActivity" /> 177 <activity android:name="io.card.payment.DataEntryActivity" />
204 2、 向Gump平台索要游戏ID(GID),完成代码接入 178 2、 向Gump平台索要游戏ID(GID),完成代码接入
205 1.调用GumpSDK前需要执行初始化。 179 1.调用GumpSDK前需要执行初始化。
206 若需要不需要分渠道 180 若需要不需要分渠道
207 GumpSDK.init(Appid, Appkey,FacebookId); 181 GumpSDK.init(Appid, Appkey,FacebookId);
208 如果需要定义渠道,必须使用如下方法 182 如果需要定义渠道,必须使用如下方法
209 GumpSDK.init(Appid, Appkey,FacebookId,ChannelId); 183 GumpSDK.init(Appid, Appkey,FacebookId,ChannelId);
210 2.调用GumpSDK的开始方法,将执行登录流程,需要一个Activity实例作参数 184 2.调用GumpSDK的开始方法,将执行登录流程,需要一个Activity实例作参数
211 GumpSDK.start(Activity); 185 GumpSDK.start(Activity);
212 开发者需要在调用的Activity里重写onActivityResult方法以接受用户的登录结果,通常如下: 186 开发者需要在调用的Activity里重写onActivityResult方法以接受用户的登录结果,通常如下:
213 //登录请求返回结果 187 //登录请求返回结果
214 if (requestCode == GumpSDK.LOGIN_REQUEST_CODE) { 188 if (requestCode == GumpSDK.LOGIN_REQUEST_CODE) {
215 if (resultCode == RESULT_OK) { 189 if (resultCode == RESULT_OK) {
216 int uid = data.getIntExtra("userId", -1); 190 int uid = data.getIntExtra("userId", -1);
217 int accountType = data.getIntExtra("accountType", -1); 191 int accountType = data.getIntExtra("accountType", -1);
218 String sessionkey = data.getStringExtra("sessionKey"); 192 String sessionkey = data.getStringExtra("sessionKey");
219 193
220 } else if (resultCode == RESULT_CANCELED) { 194 } else if (resultCode == RESULT_CANCELED) {
221 Toast.makeText(this, "operate be canceled", Toast.LENGTH_SHORT).show(); 195 Toast.makeText(this, "operate be canceled", Toast.LENGTH_SHORT).show();
222 } 196 }
223 } 197 }
224 如上将收到成功登录用的userid,此Id标识唯一用户! 198 如上将收到成功登录用的userid,此Id标识唯一用户!
225 3.用户绑定邮箱,并填写密码 199 3.用户绑定邮箱,并填写密码
226 GumpSDK.boundMail(MainActivity.this); 200 GumpSDK.boundMail(MainActivity.this);
227 开发者需要在调用的Activity里重写onActivityResult方法以接受用户的绑定结果,通常如下: 201 开发者需要在调用的Activity里重写onActivityResult方法以接受用户的绑定结果,通常如下:
228 //绑定邮箱请求返回结果 202 //绑定邮箱请求返回结果
229 if (requestCode == GumpSDK.BOUND_REQUEST_CODE) { 203 if (requestCode == GumpSDK.BOUND_REQUEST_CODE) {
230 if (resultCode == RESULT_OK) { 204 if (resultCode == RESULT_OK) {
231 int uid = data.getIntExtra("userId", -1); 205 int uid = data.getIntExtra("userId", -1);
232 int accountType = data.getIntExtra("accountType", -1); 206 int accountType = data.getIntExtra("accountType", -1);
233 String sessionkey = data.getStringExtra("sessionKey"); 207 String sessionkey = data.getStringExtra("sessionKey");
234 } else if (resultCode == RESULT_CANCELED) { 208 } else if (resultCode == RESULT_CANCELED) {
235 Toast.makeText(this, "operate be canceled", Toast.LENGTH_SHORT).show(); 209 Toast.makeText(this, "operate be canceled", Toast.LENGTH_SHORT).show();
236 } 210 }
237 } 211 }
238 4.支付功能 212 4.支付功能
239 Bundle payInfo = new Bundle(); 213 Bundle payInfo = new Bundle();
240 payInfo.putString("nick", "thi"); 214 payInfo.putString("nick", "thi");
241 payInfo.putString("product", "元宝"); 215 payInfo.putString("product", "元宝");
242 payInfo.putFloat("amount", 40.0f); 216 payInfo.putFloat("amount", 40.0f);
243 payInfo.putString("extraInfo", "This is demo!"); 217 payInfo.putString("extraInfo", "This is demo!");
244 GumpSDK.pay(MainActivity.this, payInfo); 218 GumpSDK.pay(MainActivity.this, payInfo);
245 调用pay方法时,必须穿入一个bundle对象,包含如上字段,可以设置值为空,但是字段必须全部包含,支付完成仍然通过onActivityResult回调,requestCode为GumpSDK.PAY_REQUEST_CODE,回调信息除code和msg外,还含有orderId和传入的extraInfo. 219 调用pay方法时,必须穿入一个bundle对象,包含如上字段,可以设置值为空,但是字段必须全部包含,支付完成仍然通过onActivityResult回调,requestCode为GumpSDK.PAY_REQUEST_CODE,回调信息除code和msg外,还含有orderId和传入的extraInfo.
246 5.注销登录 220 5.注销登录
247 GumpSDK.logout(Activity,GumpSDK.Callback); 221 GumpSDK.logout(Activity,GumpSDK.Callback);
248 当此方法调用后,用户退出登录,并会通过callback接口通知调用程序! 222 当此方法调用后,用户退出登录,并会通过callback接口通知调用程序!
249 第二章 常见问题 223 第二章 常见问题
250 --- 224 ---
251 问题1: 如何避免混淆对SDK的影响? 225 问题1: 如何避免混淆对SDK的影响?
252 解答:有些开发者对接入了SDK的程序进行混淆时,有可能会覆盖某些java 226 解答:有些开发者对接入了SDK的程序进行混淆时,有可能会覆盖某些java
253 类,导致SDK无法正常工作,解决方法如下: 227 类,导致SDK无法正常工作,解决方法如下:
254 Ø 请开发者在混淆配置文件proguard.cfg或proguard-project.txt的最后加 228 Ø 请开发者在混淆配置文件proguard.cfg或proguard-project.txt的最后加
255 229
256 -keep class com.gumptech.sdk.GumpSDK{ 230 -keep class com.gumptech.sdk.GumpSDK{
257 public static final <fields>; 231 public static final <fields>;
258 public static void init(java.lang.String,java.lang.String); 232 public static void init(java.lang.String,java.lang.String);
259 public static void init(java.lang.String,java.lang.String,java.lang.String,java.lang.String); 233 public static void init(java.lang.String,java.lang.String,java.lang.String,java.lang.String);
260 public static void start(android.app.Activity); 234 public static void start(android.app.Activity);
261 public static void logout(android.app.Activity); 235 public static void logout(android.app.Activity);
262 public static void boundMail(android.app.Activity); 236 public static void boundMail(android.app.Activity);
263 } 237 }
264 -keep class com.gumptech.sdk.view.* {*;} 238 -keep class com.gumptech.sdk.view.* {*;}
265 -keep class com.gumptech.sdk.GumpSDK$Callback{ 239 -keep class com.gumptech.sdk.GumpSDK$Callback{
266 void onLogout(); 240 void onLogout();
267 } 241 }
268 -keep class com.gumptech.sdk.GumpPreference{ 242 -keep class com.gumptech.sdk.GumpPreference{
269 public static final <fields>; 243 public static final <fields>;
270 } 244 }
271 -keep class com.facebook.** { *; } 245 -keep class com.facebook.** { *; }
272 246
273 -keepattributes Signature 247 -keepattributes Signature
274 使得混淆的时候不会影响SDK的命名空间。 248 使得混淆的时候不会影响SDK的命名空间。
275 249
276 250

26.2 KB

6.79 KB

7.62 KB

10.4 KB