Appearance
初始化
WARNING
初始化接口,需要在游戏主Activity中的onCreate方法中尽早调用。
设置SDK事件监听器
UGSDK在完成初始化、登录成功/失败、登出、支付成功/失败等时机,都会通过事件监听器通知给游戏层, 游戏层需要在初始化时,设置UGSDKListener对象:
点击查看代码
java
private sdkListener = new UGSDKListener() {
@Override
public void onInitFailed(int code, String msg) {
// SDK初始化失败回调
// 可能非UI线程, 如果需要操作UI,请在UI线程中操作
}
@Override
public void onInitSuccess() {
// SDK初始化成功回调
// 可能非UI线程, 如果需要操作UI,请在UI线程中操作
}
@Override
public void onLogout() {
// 从SDK中登出成功, 游戏收到该回调, 需要返回游戏登录界面,引导玩家重新进入游戏
// 可能非UI线程, 如果需要操作UI,请在UI线程中操作
}
@Override
public void onLoginSuccess(UGUser user) {
//登录成功回调, 可能非UI线程, 如果需要操作UI,请在UI线程中操作
Log.d("UGSDKDemo", "sdk login success."+user.getUid());
}
@Override
public void onLoginFailed(int code, String msg) {
//登录失败回调, 可能非UI线程, 如果需要操作UI,请在UI线程中操作
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "login failed", Toast.LENGTH_LONG).show();
}
});
}
@Override
public void onUpgradeSuccess(UGUser user) {
// 游客账号升级成功回调
// 可能非UI线程, 如果需要操作UI,请在UI线程中操作
Log.d("UGSDKDemo", "sdk account upgrade success."+user.getUid()+"; accountType:"+user.getAccountType());
}
@Override
public void onProductsResult(int code, List<UGProduct> products) {
// 获取商品信息回调
Log.d(Constants.TAG, "onProductsResult. code:"+code);
if (products != null) {
Log.d(Constants.TAG, "curr products::");
for (UGProduct product : products) {
Log.d(Constants.TAG, "local product id:" + product.getLocalProductID() +";platform product id:" + product.getPlatformProductID() + ";local price:" + product.getPrice()/100f + ";locale price:" + product.getLocalePrice()+";locale currency:" + product.getLocaleCurrency());
}
}
}
@Override
public void onPaySuccess(UGOrder order) {
// 支付成功回调, 可能非UI线程, 如果需要操作UI,请在UI线程中操作
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "pay success", Toast.LENGTH_LONG).show();
}
});
}
@Override
public void onPayFailed(int code, String msg) {
// 支付失败回调, 可能非UI线程, 如果需要操作UI,请在UI线程中操作
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "pay failed", Toast.LENGTH_LONG).show();
}
});
}
@Override
public void onExitSuccess() {
// SDK退出游戏回调
}
};上面监听事件通知中,可能是非UI线程中, 如果需要操作UI界面,需要在UI线程中操作:
java
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
//TODO::在这里操作UI相关逻辑
}
});调用初始化接口
注意
如果游戏有多个Activity, 一定要在游戏主Activity(也就是引擎Activity)的onCreate中调用初始化接口, 而非Launcher Activity。
java
String appID = "1";
String appKey = "11111111111111111";
UGInitParams sdkParams = new UGInitParams(appID, appKey, UGInitParams.ORIENTATION_LANDSCAPE);
UGPlatform.getInstance().init(activity, sdkParams, sdkListener);初始化参数说明:
| 参数名称 | 参数类型 | 参数说明 |
|---|---|---|
| appID | String | 当前游戏的appID参数,如果还没有该参数,请参考:获取参数 |
| appKey | String | 当前游戏的appKey参数,如果还没有该参数,请参考:获取参数 |
| orientation | String | 游戏横竖屏,UGInitParams.ORIENTATION_PORTRAIT:竖屏; UGInitParams.ORIENTATION_LANDSCAPE:横屏 |
注意:为了方便游戏层修改SDK参数, 上面初始化接口中,如果UGInitParams对象传null, 则读取assets/ug_dev.properties中配置的ug.appid等参数:
props
# SDK appID
ug.appid=1
# SDK appKey
ug.appkey=11111111111111111
# 游戏横竖屏 1:竖屏:2:横屏
ug.orientation=1
# SDK Server URL
ug.server.url=http://ugapi.bytesdk.com配置项说明:
| 参数名称 | 参数类型 | 参数说明 |
|---|---|---|
| ug.appid | String | 当前游戏的appID参数,如果还没有该参数,请参考:获取参数 |
| ug.appkey | String | 当前游戏的appKey参数,如果还没有该参数,请参考:获取参数 |
| ug.orientation | String | 游戏横竖屏,1:竖屏; 2:横屏 |
| ug.server.url | String | SDK服务端URL地址 |
初始化回调
当SDK初始化成功或失败时,会通过UGSDKListener中下面对应的函数通知给游戏层:
java
@Override
public void onInitSuccess() {
// SDK初始化成功回调
}
@Override
public void onInitFailed(int code, String msg) {
// SDK初始化失败回调
}