Blame view

doc/AndroidDocument.md 7.78 KB
b58707f79   赵康   init
1
  # Gump Android SDK使用文档
5817fcc88   赵康   增加链接
2
  接入手册        
418a1e0cf   赵康   修改版本号
3
  V 2.3.1       
34a1e9f2d   赵康   修改日期
4
  2015年01月08日    
5817fcc88   赵康   增加链接
5
6
          
  快速入口:       
41f36ed90   赵康   修改服务端回调文档地址
7
  [支付部分服务端回调文档](http://git.letsgame.mobi/document/gumptech-document/blob/master/doc/ServerDocument.md)										
b58707f79   赵康   init
8
9
  
  ## 目录
2172eb633   赵康   修正链接地址
10
11
12
13
14
15
16
  * [第一章  接入指南](http://git.letsgame.mobi/document/gumptech-document/blob/master/AndroidDocument.md#)        
   - [1. 导入资源工程](http://git.letsgame.mobi/document/gumptech-document/blob/master/AndroidDocument.md#1)     
   - [2. 添加资源工程](http://git.letsgame.mobi/document/gumptech-document/blob/master/AndroidDocument.md#2)     
   - [3. 代码实现](http://git.letsgame.mobi/document/gumptech-document/blob/master/AndroidDocument.md#3)     
     > [1.修改AndroidManifest.xml文件](http://git.letsgame.mobi/document/gumptech-document/blob/master/AndroidDocument.md#1-androidmanifest-xml)      
     > [2.向Gump平台索要游戏ID(GID),完成代码接入](http://git.letsgame.mobi/document/gumptech-document/blob/master/AndroidDocument.md#2-gump-id-gid)
  * [第二章 常见问题](http://git.letsgame.mobi/document/gumptech-document/blob/master/AndroidDocument.md#)     
4360990e7   赵康   更新常见问题
17
   - [问题1: 如何避免混淆对SDK的影响?](http://git.letsgame.mobi/document/gumptech-document/blob/master/AndroidDocument.md#1-sdk)       
08e1204e6   赵康   修改目录地址
18
   - [问题2:后台已经配置ok的情况下,支付列表仍然为空或登录总是出错?](http://git.letsgame.mobi/document/gumptech-document/blob/master/doc/AndroidDocument.md#2-ok)
b58707f79   赵康   init
19
20
21
22
23
24
25
26
  
  
  
  
  ## 第一章  接入指南
  配置环境
  
  本接口API	适用于Android2.2以上各版本Android平台。     
04a9e9502   赵康   完成格式编辑
27
  ### 1. 导入资源工程     
b58707f79   赵康   init
28
  1.将LoginSDK资源工程拷贝到工作空间,在eclipse中的导航栏右键弹出如图1画面,选择Import导入资源工程,如图1.
04a9e9502   赵康   完成格式编辑
29
30
  ![](images/1.png)       
          图1
b58707f79   赵康   init
31
32
  
  2.导入工程后,右键此工程,在Properties->Android中选中此工程为library工程(勾选红色方框标识处)如图2。
04a9e9502   赵康   完成格式编辑
33
34
35
  ![](images/2.png)         
  			图 2        
  ### 2. 添加资源工程
b58707f79   赵康   init
36
  添加资源工程为游戏项目的 library。右键游戏项目,在Properties->Android中点击Add添加资源工程为项目工程的library,结果如图3。 
04a9e9502   赵康   完成格式编辑
37
  ![](images/3.png)       
b58707f79   赵康   init
38
  	图 3
04a9e9502   赵康   完成格式编辑
39

b58707f79   赵康   init
40
41
42
43
44
45
  注意:如果ADT版本低于14,ADT不支持jar包自动引入,请手动拷贝libs到您的工作
  空间。 
  
  Eclipse查看ADT版本号的方法: 
  Help==>About Eclips点击Android对应的图标就可以查看版本了. 
  如图,红色框部分就是ADT版本号。 
04a9e9502   赵康   完成格式编辑
46
  ![](images/4.png)       
b58707f79   赵康   init
47

04a9e9502   赵康   完成格式编辑
48
49
  ### 3. 代码实现
  #### 1、	修改AndroidManifest.xml文件
b58707f79   赵康   init
50
  	首先添加必要的权限,如下所示:
04a9e9502   赵康   完成格式编辑
51
52
  	
      <uses-permission android:name="android.permission.INTERNET" />
b58707f79   赵康   init
53
54
      <uses-permission android:name="android.permission.READ_PHONE_STATE" />
      <uses-permission android:name="android.permission.BLUETOOTH" />
04a9e9502   赵康   完成格式编辑
55
56
57
58
      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
      <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
      <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
e96fdff45   赵康   增加系统权限
59
60
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
      <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
19a7ec3f1   赵康   sdk3.0.0更新使用web支付
61
     
b58707f79   赵康   init
62
63
      <!-- VERY IMPORTANT! Don't forget this permission, or in-app billing won't work. -->
      <uses-permission android:name="com.android.vending.BILLING" />
04a9e9502   赵康   完成格式编辑
64
      
b58707f79   赵康   init
65
  其次注册相应的Activity,具体如下:
04a9e9502   赵康   完成格式编辑
66
67
68
69
70
71
72
73
74
75
  
      <activity
          android:name="com.gumptech.sdk.ContainerActivity"
          android:theme="@style/container_dialog"
          android:configChanges="orientation|screenLayout" >
      </activity>
      <activity
          android:name="com.facebook.LoginActivity"
          android:theme="@android:style/Theme.Translucent.NoTitleBar" >
      </activity>
b58707f79   赵康   init
76
  	<activity
04a9e9502   赵康   完成格式编辑
77
78
79
80
          android:name="com.gumptech.sdk.PaymentActivity"
          android:configChanges="orientation|screenLayout"
          android:theme="@android:style/Theme.Translucent.NoTitleBar" >
      </activity>
91314fccb   赵康   增加activity配置
81
82
83
84
85
      <activity
              android:name="com.gumptech.sdk.ExchangeWindow"
              android:configChanges="orientation|screenLayout"
              android:theme="@style/ex_win" >
      </activity>
cd70fe72b   赵康   add push service
86
87
      <service android:name="com.gumptech.sdk.PushService" >
      </service>
19a7ec3f1   赵康   sdk3.0.0更新使用web支付
88
      
04a9e9502   赵康   完成格式编辑
89
90
91
92
      
  #### 2、	向Gump平台索要游戏ID(GID),完成代码接入
  1.调用GumpSDK前需要执行初始化。        
  若不需要分渠道      
7eb9062fd   赵康   修改初始化方法
93
      GumpSDK.init(Context,Appid, Appkey);   
04a9e9502   赵康   完成格式编辑
94
  如果需要定义渠道,必须使用如下方法       
7eb9062fd   赵康   修改初始化方法
95
      GumpSDK.init(Context,Appid, Appkey,ChannelId);      
fa787d2d0   赵康   增加控制logo显示方法
96
97
98
  *gump logo的显示控制方法,此方法参数指定是否显示GumpLogo
      
      GumpSDK.setShowLogo(boolean);  
2f2769497   赵康   增加横竖屏控制
99
100
101
  *横竖屏控制,默认为横屏,参数为false即为竖屏   
      
      GumpSDK.setScreenLandscape(true);   
04a9e9502   赵康   完成格式编辑
102
103
104
105
106
107
108
109
  2.调用GumpSDK的开始方法,将执行登录流程,需要一个Activity实例作参数       
  
      GumpSDK.start(Activity);  
  开发者需要在调用的Activity里重写onActivityResult方法以接受用户的登录结果,通常如下:    
  
  	//登录请求返回结果      
  	if (requestCode == GumpSDK.LOGIN_REQUEST_CODE) {
  		if (resultCode == RESULT_OK) {
5be652e26   赵康   修改文档至v2.3.1
110
  			String uid = data.getIntExtra("userId", -1);
04a9e9502   赵康   完成格式编辑
111
112
  			int accountType = data.getIntExtra("accountType", -1);
  			String sessionkey = data.getStringExtra("sessionKey");
b58707f79   赵康   init
113
  				
04a9e9502   赵康   完成格式编辑
114
115
  		} else if (resultCode == RESULT_CANCELED) {
  			Toast.makeText(this, "operate be canceled", Toast.LENGTH_SHORT).show();
b58707f79   赵康   init
116
  		}
04a9e9502   赵康   完成格式编辑
117
118
119
  	}
  	
  如上将收到成功登录用的userid,此Id标识唯一用户!      
b58707f79   赵康   init
120

b2ce2ea85   赵康   删除页面支付内容链接
121
  3.支付功能      
bfd80f63f   赵康   add pay method fo...
122
  	1)使用gump通行证登录
99febc3b9   赵康   修改格式
123

04a9e9502   赵康   完成格式编辑
124
125
126
127
128
  	Bundle payInfo = new Bundle();
  	payInfo.putString("nick", "thi");
  	payInfo.putString("product", "元宝");
  	payInfo.putFloat("amount", 40.0f);
  	payInfo.putString("extraInfo", "This is demo!");
abafb4224   赵康   修改初始化方法
129
130
  	payInfo.putString("serverId", "B4003");
  	payInfo.putString("roleId", "10010");
04a9e9502   赵康   完成格式编辑
131
  	GumpSDK.pay(MainActivity.this, payInfo);
bfd80f63f   赵康   add pay method fo...
132
133
134
135
136
137
138
139
140
141
142
  调用pay方法时,必须穿入一个bundle对象,包含如上字段,可以设置值为空,但是字段必须全部包含,支付完成仍然通过onActivityResult回调,requestCode为GumpSDK.PAY_REQUEST_CODE,回调信息除code和msg外,还含有orderId和传入的extraInfo.  
  	2)未使用gump通行证登录,需要传入用户id
  
  	Bundle payInfo = new Bundle();
  	payInfo.putString("nick", "thi");
  	payInfo.putString("product", "元宝");
  	payInfo.putFloat("amount", 40.0f);
  	payInfo.putString("extraInfo", "This is demo!");
  	payInfo.putString("serverId", "B4003");
  	payInfo.putString("roleId", "10010");
  	GumpSDK.pay(MainActivity.this, payInfo,"1021");
04a9e9502   赵康   完成格式编辑
143
144
145
146
147
  5.注销登录      
  
  	GumpSDK.logout(Activity,GumpSDK.Callback);
  当此方法调用后,用户退出登录,并会通过callback接口通知调用程序!
  ## 第二章 常见问题      
5817fcc88   赵康   增加链接
148
  ### 问题1: 如何避免混淆对SDK的影响?       
04a9e9502   赵康   完成格式编辑
149
150
151
  解答:有些开发者对接入了SDK的程序进行混淆时,有可能会覆盖某些java
  类,导致SDK无法正常工作,解决方法如下:      
  Ø  请开发者在混淆配置文件proguard.cfg或proguard-project.txt的最后加上       
04a9e9502   赵康   完成格式编辑
152
      -keep class com.gumptech.sdk.view.* {*;}
100dc95c2   赵康   修改混淆配置
153
      -keep class com.gumptech.sdk.web.* {*;}
04a9e9502   赵康   完成格式编辑
154
155
156
157
158
159
      -keep class com.gumptech.sdk.GumpSDK$Callback{
      	void onLogout();
      }
      -keep class  com.gumptech.sdk.GumpPreference{
      public static final <fields>;
      }
04a9e9502   赵康   完成格式编辑
160
      
4360990e7   赵康   更新常见问题
161
162
163
164
  使得混淆的时候不会影响SDK的命名空间。   
  ### 问题2:后台已经配置ok的情况下,支付列表仍然为空或登录总是出错?   
  解答:sdk在debug模式下使用的默认服务器地址是开发环境地址,此地址区别于正式环境地址,为开发调试用;若进行线上调试或正式环境测试,需要使用release模式来进行!       
  一般在IDE中直接run应用到设备上使用的是debug证书安装,此时即处于debug模式;若要使用正式环境,应该使用正式证书签名打包后进行安装!