package com.secondworld.sdk; import android.app.Activity; import android.widget.Toast; import com.maiyou.maiysdk.Manager.MaiySDKManager; import com.maiyou.maiysdk.interfaces.LoginErrorMsg; import com.maiyou.maiysdk.interfaces.LogincallBack; import com.maiyou.maiysdk.interfaces.OnLoginListener; import com.maiyou.maiysdk.interfaces.OnPaymentListener; import com.maiyou.maiysdk.interfaces.OnReportedDataListener; import com.maiyou.maiysdk.interfaces.PaymentCallbackInfo; import com.maiyou.maiysdk.interfaces.PaymentErrorMsg; import com.maiyou.maiysdk.interfaces.PersonalCenterCallBack; import com.maiyou.maiysdk.interfaces.ReporteErrorMsg; import com.maiyou.maiysdk.interfaces.ReportedDataCallback; import com.maiyou.maiysdk.util.MD5; import com.maiyou.maiysdk.util.ResourceUtil; import com.secondworld.sdk.utils.CodeA2U; import com.secondworld.sdk.utils.LogUtil; import org.json.JSONException; import org.json.JSONObject; public class MySdkMgr extends PlatformSdkMgr { private static final String TAG = MySdkMgr.class.getSimpleName(); public static MySdkMgr I = new MySdkMgr(); MaiySDKManager miluSDKManager; public void init(Activity activity) { sdkInitState = SdkInitState.LOADING; } public void OnCreate(Activity activity) { sdkInitState = SdkInitState.LOADING; MaiySDKManager.init(activity); miluSDKManager = MaiySDKManager.getInstance(activity); } public void login() { switch (sdkInitState) { case FAILED: case UNKNOWN: { if (GTGameMain.I.activity != null) init(GTGameMain.I.activity); Toast.makeText(GameAppProxy.app, "Initializing", Toast.LENGTH_LONG).show(); break; } case SUCCEED: { //sdk初始化后调用登陆接口 miluSDKManager.showLogin(new OnLoginListener() { @Override public void loginSuccess(LogincallBack logincallback) { LogUtil.i(TAG, "登陆成功进入游戏回传参数:" + "--altUsername=" + logincallback.altUsername + "--logintime=" + logincallback.logintime + "--sign=" + logincallback.sign); //请游戏对接方在登陆成功后调用此方法 LogOutInitialize(); String account = logincallback.altUsername + "@9998"; //quick有渠道之分,避免账号重复,咪噜只有唯一渠道此处写死@9998是为了游戏保持一致 try { args.clear(); JSONObject jinfo = new JSONObject(); jinfo.put("account", account); jinfo.put("userName", logincallback.altUsername); jinfo.put("token", logincallback.sign); args.put("info", jinfo); UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLoginOk, args); } catch (JSONException e) { throw new RuntimeException(e); } } @Override public void loginError(LoginErrorMsg errorMsg) { } }); break; } case LOADING: { Toast.makeText(GameAppProxy.app, "Initializing", Toast.LENGTH_LONG).show(); break; } } } public void SetRoleDate(String roleID, String roleName, String level, String serverID, String serverName) { //上报角色信息 miluSDKManager.setRoleDate(roleID, roleName, level, serverID, serverName, new OnReportedDataListener() { @Override public void reporteSuccess(ReportedDataCallback reportedDataCallback) { LogUtil.i(TAG, reportedDataCallback.message); } @Override public void reporteError(ReporteErrorMsg reporteErrorMsg) { LogUtil.i(TAG, reporteErrorMsg.message); } }); } public void LogOutInitialize() { GameActivityProxy.I.activity.runOnUiThread(new Runnable() { @Override public void run() { //退出登录的回调监听 miluSDKManager.logout(new PersonalCenterCallBack() { @Override public void getCallBack() { //请在此处做游戏退出到登录页面的操作 //注销成功,需要把游戏切换回登陆前的场景,并重新弹出登录框等操作 UnityMsgHandler.sendMessageToUnity(CodeA2U.PlatformLogoutOk); } }); } }); } public void pay(String roleID, String money, String serverID, String productID, String productName, String Extra) { LogUtil.i(TAG, "调起充值:roleID-" + roleID + " money-" + money + " serverID-" + serverID + " productID-" + productID + " productName-" + productName + " Extra-" + Extra); GameActivityProxy.I.activity.runOnUiThread(new Runnable() { @Override public void run() { miluSDKManager.showPay(GTGameMain.I.activity, money, productID, roleID, productName, productName, serverID, Extra, new OnPaymentListener() { @Override public void paymentSuccess(PaymentCallbackInfo callbackInfo) { //H5支付回调不准,请自行查询 } @Override public void paymentError(PaymentErrorMsg errorMsg) { //H5支付回调不准,请自行查询 } }); } }); } public void onResume() { GameActivityProxy.I.activity.runOnUiThread(new Runnable() { @Override public void run() { //显示悬浮窗 if (null != miluSDKManager) { miluSDKManager.showFloatball(); } } }); } public void onStop() { GameActivityProxy.I.activity.runOnUiThread(new Runnable() { @Override public void run() { //隐藏悬浮窗 if (null != miluSDKManager) { miluSDKManager.hideFloatball(); } } }); } public void onDestroy() { //退出登录、退出游戏调用 miluSDKManager.recycle(); } }