Commit 04a9e9502c933dbe1899bb82264b66478d2499e5

Authored by 赵康
1 parent b71aaad8d2
Exists in master

完成格式编辑

Showing 1 changed file with 132 additions and 185 deletions Inline Diff

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