上文中已介紹了環(huán)境與軟件的安裝配置,之后我們就可以開始學習接入渠道了,
UC已和豌斗夾渠道合并,改名叫阿里游戲
我這邊演示用DEMO的下載的為融合版,看一下下載下來后有些什么東西吧
具體里面的東西如何使用,我們晚點正說
在接入之前,需先在渠道后臺創(chuàng)建游戲,獲取一些接入?yún)?shù)。
客戶端所需要參數(shù)包括:cpId、gameId、serverId。參數(shù)基本是初始化時所需要傳入的參數(shù)。
準備工作做為,正式開始接入,首先肯定是把所需要的資源如JAR包之類的復制到我的工程中去。
我這邊的接入環(huán)境是Eclipse
那首先我們得先創(chuàng)建一個demo工程,打開我們的Eclipse,新建一個工程,名為demo
創(chuàng)建完成之后如下圖,會發(fā)現(xiàn)我們左側(cè)欄會有兩個新工程
很明顯現(xiàn)在是有問題的,有兩個大大的感嘆號,那有些東西我們是不需要的,就直接大膽的delete掉 ,先刪除appcompat v7 選中appcompat v7按delete鍵,記得打勾如下圖紅色標記處,然后按確定
現(xiàn)在我們發(fā)現(xiàn)打叉叉的地方有這幾個地方
首先我們?nèi)alues里面把錯誤的地方刪除
之后我們發(fā)現(xiàn)錯誤的地方只有一處了
我們雙擊MainActivity.java打開這個類
然后我們把除了第一行外所有的代碼都刪除,之后我會把整個類的代碼寫在后面,大家只需要把整個類的代碼復制進這個類里就行
然后我們clean我們的工程,選中demo
然后把下圖中紅框里的三個目錄都delete刪除
同樣重復剛剛的步驟,clean我們的工程
同樣打開下圖中報錯的文件
刪除文字下方帶紅色波浪線的
再次clean一下我們的demo工程后發(fā)現(xiàn)沒有地方再報錯了
打開我們下載好解壓出來的文檔目錄找到所需要依賴的JAR包
紅框所示就是我們Eclipse所需要的jar包了。
把alipay.jar復制到我們工程的libs目錄下就行。
.arr是studio中用的類似于Eclipse的.jar,但其中整合了其他資源,所以,我們需要把arr文件的后綴名改成rar或者zip把的解壓出來獲取我們需要的資源文件。
然后解壓
解壓出來的目錄格式:
其中,我們需要是上圖中兩個紅框中的。
把ucgamesdk.jar復制到我們工程的libs目錄下
把assets目錄下的所有文件復制到我們工程的assets目錄下。
至此,我們已經(jīng)把所有需要的東西都復制到了我們的工程中,clean 一下我們的demo工程,接下來個上代碼了。
首先我們打開我們工程的AndroidManifest.xml文件。
然后復制以下代碼
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.demo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="cn.uc.gamesdk.activity.ProxyActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="adjustResize" >
<intent-filter>
<action android:name="cn.uc.gamesdk.sdkweb" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!-- alipay sdk begin -->
<activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:exported="false"
android:screenOrientation="behind" >
</activity>
<activity
android:name="com.alipay.sdk.auth.AuthActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:exported="false"
android:screenOrientation="behind" >
</activity>
<!-- alipay sdk end -->
<!-- 游戲的橫豎屏配置 -->
<meta-data
android:name="ali_screen_orientation"
android:value="landscape" />
</application>
</manifest>
然后到我們demo工程的AndroidManifest.xml全選替換粘貼
以上AndroidManifest.xml修改好了。
做完以上步驟,接下來,我們開始接入SDK的接口。
首先打開我們的MainActivity.java
剛剛我讓大家把這個文件里的代碼都刪了,現(xiàn)在應該除了第一行是沒有東西的,然后把下面的代碼復制進去,注意別把第一行的代碼覆蓋了。
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import cn.uc.gamesdk.UCGameSdk;
import cn.uc.gamesdk.even.SDKEventKey;
import cn.uc.gamesdk.even.SDKEventReceiver;
import cn.uc.gamesdk.even.Subscribe;
import cn.uc.gamesdk.exception.AliLackActivityException;
import cn.uc.gamesdk.exception.AliNotInitException;
import cn.uc.gamesdk.open.GameParamInfo;
import cn.uc.gamesdk.open.OrderInfo;
import cn.uc.gamesdk.open.UCLogLevel;
import cn.uc.gamesdk.open.UCOrientation;
import cn.uc.gamesdk.param.SDKParamKey;
import cn.uc.gamesdk.param.SDKParams;
public class MainActivity extends Activity {
final static String TAG = "demo";
UCGameSdk sdk;
int cpId = 0;
int gameId = 0;
int serverId = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
UCGameSdk.defaultSdk().registeSDKEventReceiver(eventReceiver);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
UCGameSdk.defaultSdk().unregisterSDKEventReceiver(eventReceiver);
sdk = UCGameSdk.defaultSdk();
}
private void init() {
// TODO Auto-generated method stub
GameParamInfo gameParamInfo = new GameParamInfo();
gameParamInfo.setCpId(cpId);// 上文提到的游戲參數(shù) 參數(shù)類型int
gameParamInfo.setGameId(gameId);// 上文提到的游戲參數(shù) 參數(shù)類型int
gameParamInfo.setServerId(serverId);// 上文提到的游戲參數(shù) 參數(shù)類型int
// 設置是否支持查詢充值歷史和顯示切換賬號功能,
// 如果不設置,默認具有查詢充值歷史記錄,不具有切換賬戶功能
gameParamInfo.setEnablePayHistory(true);// 開啟查詢充值歷史功能
gameParamInfo.setEnableUserChange(true);// 開啟賬號切換功能
// 設置SDK屏幕方向
// LANDSCAPE:橫屏,橫屏游戲必須設置為橫屏,PORTRAIT:豎屏
gameParamInfo.setOrientation(UCOrientation.PORTRAIT);
SDKParams sdkParams = new SDKParams();
sdkParams.put(SDKParamKey.LOG_LEVEL, UCLogLevel.DEBUG);// 日志等級
sdkParams.put(SDKParamKey.GAME_PARAMS, gameParamInfo);
// FIXME always debug
// 是否打開調(diào)試模式。
// 在為true的時候,會連接到聯(lián)調(diào)測試環(huán)境(sdk.test4.9game.cn),
// 當為false的時候則會連接到正式環(huán)境(sdk.g.9game.cn)。
sdkParams.put(SDKParamKey.DEBUG_MODE, false);
try {
sdk.initSdk(MainActivity.this, sdkParams);
} catch (AliLackActivityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void login() {
try {
sdk.login(MainActivity.this, null);
} catch (AliLackActivityException e) {
// TODO Auto-generated catch block activity為空,異常處理
e.printStackTrace();
} catch (AliNotInitException e) {
// TODO Auto-generated catch block 未初始化,異常處理
e.printStackTrace();
}
}
private void pay() {
SDKParams sdkParams = new SDKParams();
sdkParams.put(SDKParamKey.CALLBACK_INFO, "{\"test\":true}");
sdkParams.put(SDKParamKey.SERVER_ID, "1");
sdkParams.put(SDKParamKey.ROLE_ID, "AAA");
sdkParams.put(SDKParamKey.ROLE_NAME, "BBB");
sdkParams.put(SDKParamKey.GRADE, "grade1");
sdkParams.put(SDKParamKey.NOTIFY_URL, "");
sdkParams.put(SDKParamKey.AMOUNT, "2.33");
sdkParams.put(SDKParamKey.CP_ORDER_ID, "20160000101001");
sdkParams.put(SDKParamKey.ACCOUNT_ID, "123");
sdkParams.put(SDKParamKey.SIGN_TYPE, "MD5");
sdkParams.put(SDKParamKey.SIGN, "游戲服務器根據(jù)以上信息簽名后的結(jié)果");
// 以上字段的值都需要由游戲服務器生成
try {
UCGameSdk.defaultSdk().pay(MainActivity.this, sdkParams);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block 參數(shù)錯
e.printStackTrace();
} catch (AliLackActivityException e) {
// TODO Auto-generated catch block activity null
e.printStackTrace();
} catch (AliNotInitException e) {
// TODO Auto-generated catch block 未初始化
e.printStackTrace();
}
}
private void sendUserInfo() {
SDKParams sdkParams = new SDKParams();
sdkParams.put(SDKParamKey.STRING_ROLE_ID, "roleId");
sdkParams.put(SDKParamKey.STRING_ROLE_NAME, "roleName");
sdkParams.put(SDKParamKey.LONG_ROLE_LEVEL, 1);
sdkParams.put(SDKParamKey.STRING_ZONE_ID, "zoneId");
sdkParams.put(SDKParamKey.STRING_ZONE_NAME, "serverId");
sdkParams.put(SDKParamKey.LONG_ROLE_CTIME, 1456397360);
try {
sdk.submitRoleData(MainActivity.this, sdkParams);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AliNotInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AliLackActivityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void logout(){
try {
sdk.logout(MainActivity.this, null);
} catch (AliLackActivityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AliNotInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void exit() {
try {
sdk.exit(MainActivity.this, null);
} catch (AliLackActivityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AliNotInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
SDKEventReceiver eventReceiver = new SDKEventReceiver() {
@Subscribe(event = SDKEventKey.ON_INIT_SUCC)
private void onInitSucc() {
// 初始化成功
Log.d(TAG, "init success");
}
@Subscribe(event = SDKEventKey.ON_INIT_FAILED)
private void onInitFailed(String data) {
// 初始化失敗
Log.d(TAG, "init failed:" + data);
}
@Subscribe(event = SDKEventKey.ON_LOGIN_SUCC)
private void onLoginSucc(String sid) {
// 登錄成功
// sid為用戶的登錄會話標識,用于給游戲服務器校驗用戶登錄狀態(tài)使用。
Log.d(TAG, "login success:sid:" + sid);
}
@Subscribe(event = SDKEventKey.ON_LOGIN_FAILED)
private void onLoginFailed(String desc) {
// 登錄失敗
Log.d(TAG, "login failed:" + desc);
}
@Subscribe(event = SDKEventKey.ON_LOGOUT_SUCC)
private void onLogoutSucc() {
// 登出成功
Log.d(TAG, "logout success");
}
@Subscribe(event = SDKEventKey.ON_LOGOUT_FAILED)
private void onLogoutFailed() {
// 登出失敗
Log.d(TAG, "logout failed");
}
@Subscribe(event = SDKEventKey.ON_EXIT_SUCC)
private void onExit(String desc) {
// 退出游戲
Log.d(TAG, "exit:" + desc);
MainActivity.this.finish();
System.exit(0);
}
@Subscribe(event = SDKEventKey.ON_EXIT_CANCELED)
private void onExitCanceled(String desc) {
// 取消退出
Log.d(TAG, "exit cancel:" + desc);
}
@Subscribe(event = SDKEventKey.ON_CREATE_ORDER_SUCC)
private void onCreateOrderSucc(OrderInfo orderInfo) {
// 支付成功
if (orderInfo != null) {
String txt = orderInfo.getOrderAmount() + ","
+ orderInfo.getOrderId() + "," + orderInfo.getPayWay();
Log.d(TAG, "充值成功: " + txt + "\n");
}
Log.i(TAG, "pay succ");
}
@Subscribe(event = SDKEventKey.ON_PAY_USER_EXIT)
private void onPayUserExit(OrderInfo orderInfo) {
// 支付失敗
if (orderInfo != null) {
String txt = orderInfo.getOrderAmount() + ","
+ orderInfo.getOrderId() + "," + orderInfo.getPayWay();
Log.d(TAG, "充值失敗: " + txt + "\n");
}
Log.i(TAG, "pay fail");
}
};
}
至此我們就把所有UC上線所需的接口完成了,添加UI并添加相應事件調(diào)用相應接口后,就是一個最簡單的demo了
如果想要了解具體的接口作用,和相應參數(shù)的說明,請繼續(xù)閱讀以下內(nèi)容,或查看官方文檔
第一種步創(chuàng)建監(jiān)聽:
SDKEventReceiver eventReceiver = new SDKEventReceiver() {
@Subscribe(event = SDKEventKey.ON_INIT_SUCC)
private void onInitSucc() {
// 初始化成功
Log.d(tag, "init success");
}
@Subscribe(event = SDKEventKey.ON_INIT_FAILED)
private void onInitFailed(String data) {
// 初始化失敗
Log.d(tag, "init failed:" + data);
}
@Subscribe(event = SDKEventKey.ON_LOGIN_SUCC)
private void onLoginSucc(String sid) {
// 登錄成功
// sid為用戶的登錄會話標識,用于給游戲服務器校驗用戶登錄狀態(tài)使用。
Log.d(tag, "login success:sid:" + sid);
}
@Subscribe(event = SDKEventKey.ON_LOGIN_FAILED)
private void onLoginFailed(String desc) {
// 登錄失敗
Log.d(tag, "login failed:" + desc);
}
@Subscribe(event = SDKEventKey.ON_LOGOUT_SUCC)
private void onLogoutSucc() {
// 登出成功
Log.d(tag, "logout success");
}
@Subscribe(event = SDKEventKey.ON_LOGOUT_FAILED)
private void onLogoutFailed() {
// 登出失敗
Log.d(tag, "logout failed");
}
@Subscribe(event = SDKEventKey.ON_EXIT_SUCC)
private void onExit(String desc) {
// 退出游戲
Log.d(tag, "exit:" + desc);
MainActivity.this.finish();
System.exit(0);
}
@Subscribe(event = SDKEventKey.ON_EXIT_CANCELED)
private void onExitCanceled(String desc) {
// 取消退出
Log.d(tag, "exit cancel:" + desc);
}
@Subscribe(event = SDKEventKey.ON_CREATE_ORDER_SUCC)
private void onCreateOrderSucc(OrderInfo orderInfo) {
// 支付成功
if (orderInfo != null) {
String txt = orderInfo.getOrderAmount() + ","
+ orderInfo.getOrderId() + "," + orderInfo.getPayWay();
Log.d(tag, "充值成功: " + txt + "\n");
}
Log.i(tag, "pay succ");
}
@Subscribe(event = SDKEventKey.ON_PAY_USER_EXIT)
private void onPayUserExit(OrderInfo orderInfo) {
// 支付失敗
if (orderInfo != null) {
String txt = orderInfo.getOrderAmount() + ","
+ orderInfo.getOrderId() + "," + orderInfo.getPayWay();
Log.d(tag, "充值失敗: " + txt + "\n");
}
Log.i(tag, "pay fail");
}
};
監(jiān)聽創(chuàng)建完成后,需要在Activity onCreate中注冊,并在Activity onDestroy中注銷:
注冊:UCGameSdk.defaultSdk().registeSDKEventReceiver(eventReceiver);
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
UCGameSdk.defaultSdk().registeSDKEventReceiver(eventReceiver);
}
注銷:UCGameSdk.defaultSdk().unregisterSDKEventReceiver(eventReceiver);
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
UCGameSdk.defaultSdk().unregisterSDKEventReceiver(eventReceiver);
}
這樣在相應操作之后,UC的SDK就能給你回調(diào)了,在相應回調(diào)方法內(nèi),做自己游戲相應操作就行
第二步初始化:
首先定義一個全局變量:UCGameSdk sdk;
并在Activity onCreate中獲取對象:sdk = UCGameSdk.defaultSdk();
之后就在Activity onCreate中調(diào)用UC的初始化接口:
private void init() {
// TODO Auto-generated method stub
GameParamInfo gameParamInfo = new GameParamInfo();
gameParamInfo.setCpId(cpId);//上文提到的游戲參數(shù) 參數(shù)類型int
gameParamInfo.setGameId(gameId);//上文提到的游戲參數(shù) 參數(shù)類型int
gameParamInfo.setServerId(serverId);//上文提到的游戲參數(shù) 參數(shù)類型int
//設置是否支持查詢充值歷史和顯示切換賬號功能,
//如果不設置,默認具有查詢充值歷史記錄,不具有切換賬戶功能
gameParamInfo.setEnablePayHistory(true);//開啟查詢充值歷史功能
gameParamInfo.setEnableUserChange(true);//開啟賬號切換功能
//設置SDK屏幕方向
//LANDSCAPE:橫屏,橫屏游戲必須設置為橫屏,PORTRAIT:豎屏
gameParamInfo.setOrientation(UCOrientation.PORTRAIT);
SDKParams sdkParams = new SDKParams();
sdkParams.put(SDKParamKey.LOG_LEVEL, UCLogLevel.DEBUG);//日志等級
sdkParams.put(SDKParamKey.GAME_PARAMS, gameParamInfo);
//FIXME always debug
//是否打開調(diào)試模式。
//在為true的時候,會連接到聯(lián)調(diào)測試環(huán)境(sdk.test4.9game.cn),
//當為false的時候則會連接到正式環(huán)境(sdk.g.9game.cn)。
sdkParams.put(SDKParamKey.DEBUG_MODE, false);
try {
sdk.initSdk(MainActivity.this, sdkParams);
} catch (AliLackActivityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
調(diào)用登錄接口:
private void login() {
try {
sdk.login(MainActivity.this, null);
} catch (AliLackActivityException e) {
// TODO Auto-generated catch block activity為空,異常處理
e.printStackTrace();
} catch (AliNotInitException e) {
// TODO Auto-generated catch block 未初始化,異常處理
e.printStackTrace();
}
}
調(diào)用支付接口:
private void pay() {
SDKParams sdkParams = new SDKParams();
sdkParams.put(SDKParamKey.CALLBACK_INFO, "{\"test\":true}");
sdkParams.put(SDKParamKey.SERVER_ID, "1");
sdkParams.put(SDKParamKey.ROLE_ID, "AAA");
sdkParams.put(SDKParamKey.ROLE_NAME, "BBB");
sdkParams.put(SDKParamKey.GRADE, "grade1");
sdkParams.put(SDKParamKey.NOTIFY_URL, "");
sdkParams.put(SDKParamKey.AMOUNT, "2.33");
sdkParams.put(SDKParamKey.CP_ORDER_ID, "20160000101001");
sdkParams.put(SDKParamKey.ACCOUNT_ID, "123");
sdkParams.put(SDKParamKey.SIGN_TYPE, "MD5");
sdkParams.put(SDKParamKey.SIGN, "游戲服務器根據(jù)以上信息簽名后的結(jié)果");
// 以上字段的值都需要由游戲服務器生成
try {
UCGameSdk.defaultSdk().pay(MainActivity.this, sdkParams);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block 參數(shù)錯
e.printStackTrace();
} catch (AliLackActivityException e) {
// TODO Auto-generated catch block activity null
e.printStackTrace();
} catch (AliNotInitException e) {
// TODO Auto-generated catch block 未初始化
e.printStackTrace();
}
}
參數(shù)說明:
參數(shù)定義 |
類型 |
是否必填 |
說明 |
|
ROLE_ID |
roleId |
String |
否 |
角色ID |
ROLE_NAME |
roleName |
String |
否 |
角色名稱 |
GRADE |
grade |
String |
否 |
角色等級 |
CALLBACK_INFO |
callbackInfo |
String |
否 |
cp自定義信息,在支付結(jié)果通知時回傳,CP可以自己定義格式,長度不超過250 |
AMOUNT |
amount |
String |
是 |
充值金額,如果傳遞為0表示用戶可以自定義充值金額,保留小數(shù)點后2位,單位為元。例:10.00 |
SERVER_ID |
serverId |
String |
否 |
服務器ID,默認為0 |
NOTIFY_URL |
notifyUrl |
String |
否 |
服務器通知地址,如果為空以服務端配置地址作為通知地址,長度不超過100 |
CP_ORDER_ID |
cpOrderId |
String |
否 |
cp充值訂單號,需要保證用戶每次充值訂單號的唯一性,長度不超過30 |
ACCOUNT_ID |
accountId |
String |
是 |
用戶id,充值用戶的統(tǒng)一賬號ID,由阿里游戲平臺生成。 |
SIGN_TYPE |
signType |
String |
是 |
簽名類型,MD5或者RSA 目前只支持MD5 |
SIGN |
sign |
String |
是 |
簽名結(jié)果。 MD5(簽名內(nèi)容+apiKey); 服務端生成 簽名算法參考官方說明 |
接入提交游戲角色數(shù)據(jù)信息:
數(shù)據(jù)提交時機:
1、用戶創(chuàng)建角色或已有角色進入游戲后
2、當用戶的角色等級發(fā)生變化后
private void sendUserInfo() {
SDKParams sdkParams = new SDKParams();
sdkParams.put(SDKParamKey.STRING_ROLE_ID, "roleId");
sdkParams.put(SDKParamKey.STRING_ROLE_NAME, "roleName");
sdkParams.put(SDKParamKey.LONG_ROLE_LEVEL, 1);
sdkParams.put(SDKParamKey.STRING_ZONE_ID, "zoneId");
sdkParams.put(SDKParamKey.STRING_ZONE_NAME, "serverId");
sdkParams.put(SDKParamKey.LONG_ROLE_CTIME, 1456397360);
try {
sdk.submitRoleData(MainActivity.this, sdkParams);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AliNotInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AliLackActivityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
參數(shù)說明:
參數(shù)定義 |
參數(shù)名稱 |
類型 |
是否必填 |
說明 |
STRING_ROLE_ID |
roleId |
String |
是 |
角色ID,長度不超過50 |
STRING_ROLE_NAME |
roleName |
String |
是 |
角色名稱,長度不超過50 |
LONG_ROLE_LEVEL |
roleLevel |
Long |
是 |
角色等級,長度不超過10 |
roleCTime |
Long |
是 |
角色創(chuàng)建時間(單位:秒),長度10,獲取服務器存儲的時間,不可用手機本地時間 |
|
STRING_ZONE_ID |
zoneId |
String |
是 |
區(qū)服ID,長度不超過50 |
STRING_ZONE_NAME |
zoneName |
String |
是 |
區(qū)服名稱,長度不超過50 |
登出與退出:登出為注銷當前賬號,游戲應返回登陸界面,退出為關閉游戲。
接入登出接口:
private void logout(){
try {
sdk.logout(MainActivity.this, null);
} catch (AliLackActivityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AliNotInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
接入退出接口:
private void exit() {
try {
sdk.exit(MainActivity.this, null);
} catch (AliLackActivityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AliNotInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
2 代碼混淆要求
如果游戲發(fā)布時采用proguard進行代碼混淆,請在proguard配置文件加入以下代碼,以避免對SDK進行混淆,否則會造成SDK部分功能不正常。
-libraryjars './libs/alipay_sdk.jar'
-libraryjars './libs/ucgamesdk.jar'
-keep class android.**{
<methods>;
<fields>;
}
-keep class cn.uc.**{
<methods>;
<fields>;
}
-keep class com.alipay.**{
<methods>; <fields>; }
-keep class com.ta.**{
<methods>; <fields>; }
-keep class com.ut.**{ <methods>; <fields>; }
-keep class org.json. **{ <methods>; <fields>; }
到這里就是接入完畢了,添加相應UI控件出包就是一個接入渠道的demo了,如果和游戲交互完成服務端接入完成,打包后就是成品啦,clean后到bin下面找 .apk包吧。
如果想了解更多,請聯(lián)系我們或關注官網(wǎng)
了解更多:www.typesdk.com
問題解答:1771930259
聯(lián)系郵箱:qianyuzhou@typesdk.com
項目地址:https://github.com/typesdk
更多建議: