# WoGameSDK接入指南(Android)
## **引入jar、so包**
1. 将我方提供jar包放到游戏接入工程中的libs目录下
![](https://box.kancloud.cn/c252ba8dd8c22fadfbf57861043a4016_950x578.png)
2. 将1.0.0.0.so放在游戏的assets/wg_plugins/目录下(此目录下只能有一个so文件,切勿更改我方提供so包的命名)
![](https://box.kancloud.cn/d9ae5918b6486d62755c3ee6ba0652a3_1208x122.png)
3. 将liblbs.so文件都放置在:lib/armeabi文件夹下(so存在多个,看接入方app架构支持情况,app现有so有哪些架构就拷贝哪些即可,具体请参考demo)
![](https://box.kancloud.cn/b6aeb5006354d3c24a28ac3ae521c129_1596x254.png)
## **配置Application**
1. 如果游戏层没有自己的Application,那么游戏需要将AndroidManifest.xml中的application指定为com.ryg.sdk.WoGameApplication
![](https://box.kancloud.cn/498ea4c5421fef6714923f6cbcaded21_854x238.png)
2. 若游戏层有自己的Application,则需要在游戏的Application的onCreate方法中调用:
WGSDK.getInstance().initBugly(this)
![](https://box.kancloud.cn/60fbc607732b4561c56a04a1f94aedde_800x158.png)
## **配置AndroidManifest.xml**
**1.权限配置**
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.READ_LOGS" />
**2.声明activity**
<activity
android:name="com.ryg.dynamicload.DLProxyFragmentActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent" />
<service android:name="com.ryg.dynamicload.DLProxyService" />
<activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name="com.alipay.sdk.auth.AuthActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="portrait" />
**3.参数配置**
<meta-data
android:name="WG_APPKEY"
android:value="666666" />
<meta-data
android:name="WG_APPSECRET"
android:value="eW91eGltYW8xMDAwMDF4cw==" />
<meta-data
android:name="WG_ENVIRONMENT"
android:value="4" />
<meta-data
android:name="BUGLY_APPID"
android:value="f25812953e" />
## **必须调用的 API**
Note:所有api都通过com.ryg.sdk.WGSDK单例类来调用
**1. 初始化sdk**
WGSDK.getInstance().init(this, new WGInitListener() {
@Override
public void onInitResult(int i, String s) {
switch (i) {
case WGCode.CODE_INIT_SUCCESS:
callbackInfo.setText("初始化成功" + s);
break;
case WGCode.CODE_INIT_FAIL:
callbackInfo.setText("初始化失败" + s);
break;
}
}
@Override
public void onSplash(int i) {
switch (i) {
case WGCode.CODE_SPLASH_START:
callbackInfo.setText("闪屏回调信息:闪屏显示");
break;
case WGCode.CODE_SPLASH_FINISH:
callbackInfo.setText("闪屏回调信息:闪屏消失");
break;
}
}
@Override
public void onLoginResult(int i, String s) {
switch (i) {
case WGCode.CODE_LOGIN_SUCCESS:
callbackInfo.setText("登录回调信息:" + s);
break;
case WGCode.CODE_LOGIN_FAIL:
callbackInfo.setText("登录回调信息:" + s);
break;
}
}
@Override
public void onPayResult(int i, String s) {
switch (i) {
case WGCode.CODE_PAY_SUCCESS:
callbackInfo.setText("支付回调信息:" + s);
break;
case WGCode.CODE_PAY_FAIL:
callbackInfo.setText("支付回调信息:" + s);
break;
}
}
@Override
public void onLogout() {
//cp需要把游戏账号退出,跳转到登录界面
Toast.makeText(MainActivity.this, "登录失效,cp需要把游戏账号退出,跳转到登录界面", Toast.LENGTH_LONG).show();
WGSDK.getInstance().login();
}
@Override
public void onExit() {
//cp需要退出游戏
finish();
}
});
**2. 登录**
WGSDK.getInstance().login();
**3. 支付**
WGSDK.getInstance().recharge(amount,
"倚天剑", String.valueOf(System.currentTimeMillis()),
"http://mock.wogame.cn/mockjsdata/11/sdk/notify",
"一区张无忌下的订单",
"201712091622",
"testRoleName",
"testRoleServerName");
| 参数名称 | 必传 | 参数类型 | 参数说明 |
|-----|:-----:|-----|:-----:|
| amount | 是 | double | 订单金额,单位:元 |
| description | 是 | String | 产品介绍 |
| codeNo | 是 | String | 订单编号(用于对账跟发货凭证,必须唯一) |
| notifyUrl | 是 | String | 发货回调地址(通知游戏端发货的地址) |
| extend | 是 | String | 游戏方的透传参数(传进什么我们都会原数据返回,建议用jsonString) |
| roleId | 是 | String | 角色ID |
| roleName | 是 | String | 角色名称 |
| roleServerName | 是 | String | 角色区服名称 |
**4. 账号退出**
WGSDK.getInstance().logout();
**5. 游戏退出**
WGSDK.getInstance().exit();
**## 生命周期函数**
public void onActivityResult(int requestCode, int resultCode, Intent data){
WGSDK.getInstance().onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}
public void onStart(){
WGSDK.getInstance().onStart();
super.onStart();
}
public void onPause(){
WGSDK.getInstance().onPause();
super.onPause();
}
public void onResume(){
WGSDK.getInstance().onResume();
super.onResume();
}
public void onNewIntent(Intent newIntent){
WGSDK.getInstance().onNewIntent(newIntent);
super.onNewIntent(newIntent);
}
public void onStop(){
WGSDK.getInstance().onStop();
super.onStop();
}
public void onDestroy(){
WGSDK.getInstance().onDestroy();
super.onDestroy();
}
public void onRestart(){
WGSDK.getInstance().onRestart();
super.onRestart();
}
public void onConfigurationChanged(Configuration newConfig){
WGSDK.getInstance(). onConfigurationChanged(newConfig);
super.onConfigurationChanged(newConfig);
}
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults){
WGSDK.getInstance().onRequestPermissionResult(requestCode, permissions, grantResults);
}