hch
2025-09-17 f306d23e461ab236ed88173f7b4a5bc35a3e9bc9
Main/SDK/SDKUtils.cs
@@ -5,7 +5,7 @@
using System.Collections.Generic;
using System.IO;
using System;
using UnityEngine.Android;
public class SDKUtils : SingletonMonobehaviour<SDKUtils>
{
@@ -18,23 +18,9 @@
    public enum E_ChannelPlatform
    {
        Free = 1,// 自由
        Mr = 2,// 猫耳
        Sp = 3,// 思璞
        Js = 4,// 极速
        Yj = 5,// 易接
        Yl = 6,// 易乐
        Xn = 7,// 小牛
        Cjm = 8,// 超级梦
        Ky = 9,//恺英
        Free = 1,// 默认
        Quick = 10, //quick
        SanXia = 11, //三峡(港台使用)
        SanXiaiOS = 12, //三峡 (港台ios使用)
        Hy = 15, //欢游
        hygt = 16, //欢游港台
        mlgt = 17, //咪噜港台
        newyn = 19, //新的越南(欢游0.1)
        en = 20, //英文版
    }
    //权限申请回调
@@ -142,6 +128,7 @@
    public void Init()
    {
        ynmbxxjUtil.Instance.Init();
        Device = new DeviceInfo();
        string uid = LocalSave.GetString("Device_uniqueID");
        //Debug.Log(Math.Abs(System.Environment.TickCount));
@@ -389,54 +376,7 @@
        switch (Application.platform)
        {
            case RuntimePlatform.Android:
                if (ChannelPlatform == E_ChannelPlatform.Sp)
                {
                    using (AndroidJavaClass _jc = new AndroidJavaClass("com.sp.sdk.utils.SDKManagerUtils"))
                    {
                        using (AndroidJavaObject _jo = _jc.CallStatic<AndroidJavaObject>("getAssetPropConfig", GetApplicationContext(), "plugin_config.properties"))
                        {
                            _result = _jo.Call<string>("get", "game_id");
                        }
                    }
                }
                else if (ChannelPlatform == E_ChannelPlatform.Mr)
                {
                    using (AndroidJavaClass _jc = new AndroidJavaClass("com.secondworld.univeralsdk.UniversalUtil"))
                    {
                        _result = _jc.CallStatic<string>("getMetaString", "Mr_GAME_ID");
                    }
                }
                else if (ChannelPlatform == E_ChannelPlatform.Js)
                {
                    using (AndroidJavaClass _jc = new AndroidJavaClass("com.secondworld.univeralsdk.UniversalUtil"))
                    {
                        _result = _jc.CallStatic<string>("getMetaString", "LL_APPID");
                    }
                }
                else if (ChannelPlatform == E_ChannelPlatform.Free)
                {
                    _result = "freeplatform";
                }
                else if (ChannelPlatform == E_ChannelPlatform.Yl)
                {
                    _result = "yileplatform";
                }
                else if (ChannelPlatform == E_ChannelPlatform.Ky)
                {
                    _result = "kyplatform";
                }
                else if (ChannelPlatform == E_ChannelPlatform.hygt)
                {
                    _result = "hygt";
                }
                else if (ChannelPlatform == E_ChannelPlatform.newyn)
                {
                    _result = "vn";
                }
                else if (ChannelPlatform == E_ChannelPlatform.en)
                {
                    _result = "en";
                }
                _result = "android";
                break;
            case RuntimePlatform.IPhonePlayer:
                _result = "ios";//ios平台固定返回ios
@@ -467,211 +407,200 @@
    public void HandleMsgWithSDK(string jsonString)
    {
//         Debug.Log("收到SDK发来的信息: " + jsonString);
//         var _json = JsonMapper.ToObject(jsonString);
//         var _code = (int)_json["code"];
//         switch (_code)
//         {
//             case CodeA2U.DeviceInfo:
        Debug.Log("收到SDK发来的信息: " + jsonString);
        var _json = JsonMapper.ToObject(jsonString);
        var _code = (int)_json["code"];
        switch (_code)
        {
            case CodeA2U.DeviceInfo:
//                 //Device.uniqueID = _json["unique_id"].ToString();
//                 Device.androidID = _json["android_id"].ToString();// ios平台下为idfa
//                 Device.userAgent = _json["userAgent"].ToString();
// #if UNITY_ANDROID
//                 Device.macAddress = _json["mac"].ToString();
//                 if (_json["imei"] != null)
//                 {
//                     Device.imei = _json["imei"].ToString();
//                 }
//                 else
//                 {
//                     Device.imei = Device.uniqueID;
//                 }
//                 Device.totalMemory = (int)_json["memoryTotal"];
// #endif
//                 if (OnDeviceInfoChanged != null)
//                 {
//                     OnDeviceInfoChanged(Device);
//                 }
                //Device.uniqueID = _json["unique_id"].ToString();
                Device.androidID = _json["android_id"].ToString();// ios平台下为idfa
                Device.userAgent = _json["userAgent"].ToString();
#if UNITY_ANDROID
                Device.macAddress = _json["mac"].ToString();
                if (_json["imei"] != null)
                {
                    Device.imei = _json["imei"].ToString();
                }
                else
                {
                    Device.imei = Device.uniqueID;
                }
                Device.totalMemory = (int)_json["memoryTotal"];
#endif
                if (OnDeviceInfoChanged != null)
                {
                    OnDeviceInfoChanged(Device);
                }
//                 break;
//             case CodeA2U.AssetCopyFinished:
//                 AssetCopyFinished = true;
//                 break;
//             case CodeA2U.BatteryLevel:
                break;
            case CodeA2U.AssetCopyFinished:
                AssetCopyFinished = true;
                break;
            case CodeA2U.BatteryLevel:
//                 BatteryLevel = (int)_json["level"];
//                 if (OnBatteryLevelChanged != null)
//                 {
//                     OnBatteryLevelChanged(BatteryLevel);
//                 }
                BatteryLevel = (int)_json["level"];
                if (OnBatteryLevelChanged != null)
                {
                    OnBatteryLevelChanged(BatteryLevel);
                }
//                 break;
//             case CodeA2U.BatteryCharging:
                break;
            case CodeA2U.BatteryCharging:
//                 ChargingType = (E_ChargingType)((int)_json["status"]);
//                 if (OnChargingTypeChanged != null)
//                 {
//                     OnChargingTypeChanged(ChargingType);
//                 }
                ChargingType = (E_ChargingType)((int)_json["status"]);
                if (OnChargingTypeChanged != null)
                {
                    OnChargingTypeChanged(ChargingType);
                }
//                 break;
//             case CodeA2U.SdkInitComplete:
//                 InitFinished = true;
//                 var _dict = _json as IDictionary;
//                 if (_dict != null && _dict.Contains("channelPlatform"))
//                 {
//                     var _channelPlatform = _json["channelPlatform"].ToString();
//                     if (!string.IsNullOrEmpty(_channelPlatform))
//                     {
//                         if (_channelPlatform.Equals("hygame"))
//                         {
//                             ChannelPlatform = E_ChannelPlatform.Hy;
//                         }
//                         else if (_channelPlatform.Equals("quick"))
//                         {
//                             ChannelPlatform = E_ChannelPlatform.Quick;
//                         }
//                         else if (_channelPlatform.Equals("hyyn"))
//                         {
//                             ChannelPlatform = E_ChannelPlatform.newyn;
//                         }
//                         else if (_channelPlatform.Equals("hygtgame"))
//                         {
//                             ChannelPlatform = E_ChannelPlatform.hygt;
//                         }
//                         else if (_channelPlatform.Equals("hyenglish"))
//                         {
//                             ChannelPlatform = E_ChannelPlatform.en;
//                         }
//                     }
//                 }
                break;
            case CodeA2U.SdkInitComplete:
                InitFinished = true;
                var _dict = _json as IDictionary;
                if (_dict != null && _dict.Contains("channelPlatform"))
                {
                    var _channelPlatform = _json["channelPlatform"].ToString();
                    if (!string.IsNullOrEmpty(_channelPlatform))
                    {
                        if (_channelPlatform.Equals("hygame"))
                        {
                            ChannelPlatform = E_ChannelPlatform.Hy;
                        }
                        else if (_channelPlatform.Equals("quick"))
                        {
                            ChannelPlatform = E_ChannelPlatform.Quick;
                        }
                    }
                }
//                 //Sdk 可能会修改渠道信息,所以需要重新获取
//                 if (_dict.Contains("yj_appid"))
//                 {
//                     Yj_AppID = _json["yj_appid"].ToString();
//                 }
                //Sdk 可能会修改渠道信息,所以需要重新获取
                if (_dict.Contains("yj_appid"))
                {
                    Yj_AppID = _json["yj_appid"].ToString();
                }
//                 if (_dict.Contains("yj_spid"))
//                 {
//                     Yj_SpID = _json["yj_spid"].ToString();
//                 }
                if (_dict.Contains("yj_spid"))
                {
                    Yj_SpID = _json["yj_spid"].ToString();
                }
//                 if (_dict.Contains("banhao"))
//                 {
//                     Yj_BanHao = _json["banhao"].ToString();
//                 }
                if (_dict.Contains("banhao"))
                {
                    Yj_BanHao = _json["banhao"].ToString();
                }
//                 break;
//             case CodeA2U.PushClientID:
//                 RegistrationID = _json["clientID"].ToString();
//                 break;
//             case CodeA2U.ExternalStorage:
//                 DeviceRootPath = _json["path"].ToString();
//                 break;
//             case CodeA2U.PermissionCallBack:
//                 {
//                     var state = (int)_json["state"];
//                     var permission = (string)_json["permission"];
//                     onPermissionCallBack?.Invoke(permission, state);
//                     onPermissionCallBack = null;
//                     break;
//                 }
//             case CodeA2U.FreePlatformInitOk:
                break;
            case CodeA2U.PushClientID:
                RegistrationID = _json["clientID"].ToString();
                break;
            case CodeA2U.ExternalStorage:
                DeviceRootPath = _json["path"].ToString();
                break;
            case CodeA2U.PermissionCallBack:
                {
                    var state = (int)_json["state"];
                    var permission = (string)_json["permission"];
                    onPermissionCallBack?.Invoke(permission, state);
                    onPermissionCallBack = null;
                    break;
                }
            case CodeA2U.FreePlatformInitOk:
//                 if (onFreePlatformInitOk != null)
//                 {
//                     onFreePlatformInitOk();
//                 }
                if (onFreePlatformInitOk != null)
                {
                    onFreePlatformInitOk();
                }
//                 break;
//             case CodeA2U.FreePlatformInitFail:
//                 if (onFreePlatformInitFail != null)
//                 {
//                     onFreePlatformInitFail();
//                 }
//                 break;
//             case CodeA2U.FreePlatformRegisterOk:
//                 // HandleFreePlatformRegisteOk(_json);
//                 OperationLogCollect.Instance.RecordEvent(5);
//                 var values = new JsonData();
//                 if (_json.Keys.Contains("reg_type"))
//                     values["af_registration_method"] = _json["reg_type"];
//                 break;
//             case CodeA2U.FreePlatformLoginOk:
//                 HandleFreePlatformLoginOk(_json["info"]);
//                 OperationLogCollect.Instance.RecordEvent(6);
//                 break;
//             case CodeA2U.FreePlatformLoginFail:
//                 if (onFreePlatformLoginFail != null)
//                 {
//                     onFreePlatformLoginFail();
//                 }
//                 break;
//             case CodeA2U.FreePlatformLogoutOk:
//                 if (onFreePlatformLogoutOk != null)
//                 {
//                     onFreePlatformLogoutOk();
//                 }
//                 FreePlatformInfo = null;
//                 break;
//             case CodeA2U.FreePlatformSwitchAccountOk:
//                 BuildFreePlatformInfo(_json["info"]);
//                 if (onFreePlatformLogoutOk != null)
//                 {
//                     onFreePlatformLogoutOk();
//                 }
//                 FreePlatformInfo = null;
//                 break;
//             case CodeA2U.FreePlatformLogoutFail:
//                 if (onFreePlatformLogoutFail != null)
//                 {
//                     onFreePlatformLogoutFail();
//                 }
//                 break;
//             case CodeA2U.FreePlatformPayOk:
//                 if (onFreePlatformPayOk != null)
//                 {
//                     onFreePlatformPayOk();
//                 }
//                 //SnxxzGame.Instance.StartCoroutine(DelayQueryRecharge());
//                 break;
//             case CodeA2U.FreePlatformPayFail:
//                 if (onFreePlatformPayFail != null)
//                 {
//                     onFreePlatformPayFail();
//                 }
//                 break;
//             case CodeA2U.FreePlatformPayCancel:
//                 if (onFreePlatformPayCancel != null)
//                 {
//                     onFreePlatformPayCancel();
//                 }
//                 break;
//             case CodeA2U.ShareCallBack:
//                 {
//                     var state = int.Parse(_json["state"].ToString());
//                     if (state == CallBackState.Success)
//                         LocalSave.SetInt("ShareToFBDay" + PlayerDatas.Instance.baseData.PlayerID, TimeUtility.ServerNow.DayOfYear);
                break;
            case CodeA2U.FreePlatformInitFail:
                if (onFreePlatformInitFail != null)
                {
                    onFreePlatformInitFail();
                }
                break;
            case CodeA2U.FreePlatformRegisterOk:
                // HandleFreePlatformRegisteOk(_json);
                // OperationLogCollect.Instance.RecordEvent(5);
                var values = new JsonData();
                if (_json.Keys.Contains("reg_type"))
                    values["af_registration_method"] = _json["reg_type"];
                break;
            case CodeA2U.FreePlatformLoginOk:
                HandleFreePlatformLoginOk(_json["info"]);
                // OperationLogCollect.Instance.RecordEvent(6);
                break;
            case CodeA2U.FreePlatformLoginFail:
                if (onFreePlatformLoginFail != null)
                {
                    onFreePlatformLoginFail();
                }
                break;
            case CodeA2U.FreePlatformLogoutOk:
                if (onFreePlatformLogoutOk != null)
                {
                    onFreePlatformLogoutOk();
                }
                FreePlatformInfo = null;
                break;
            case CodeA2U.FreePlatformSwitchAccountOk:
                BuildFreePlatformInfo(_json["info"]);
                if (onFreePlatformLogoutOk != null)
                {
                    onFreePlatformLogoutOk();
                }
                FreePlatformInfo = null;
                break;
            case CodeA2U.FreePlatformLogoutFail:
                if (onFreePlatformLogoutFail != null)
                {
                    onFreePlatformLogoutFail();
                }
                break;
            case CodeA2U.FreePlatformPayOk:
                if (onFreePlatformPayOk != null)
                {
                    onFreePlatformPayOk();
                }
                //SnxxzGame.Instance.StartCoroutine(DelayQueryRecharge());
                break;
            case CodeA2U.FreePlatformPayFail:
                if (onFreePlatformPayFail != null)
                {
                    onFreePlatformPayFail();
                }
                break;
            case CodeA2U.FreePlatformPayCancel:
                if (onFreePlatformPayCancel != null)
                {
                    onFreePlatformPayCancel();
                }
                break;
            case CodeA2U.ShareCallBack:
                {
                    var state = int.Parse(_json["state"].ToString());
                    if (state == CallBackState.Success)
                        LocalSave.SetInt("ShareToFBDay" + PlayerDatas.Instance.baseData.PlayerID, TimeUtility.ServerNow.DayOfYear);
//                     onShareFBResult?.Invoke();
//                     break;
//                 }
//             case CodeA2U.ExitGame:
//                 if (ChannelPlatform == E_ChannelPlatform.Free)
//                 {
//                     vnxbqy.UI.WindowCenter.Instance.Open<vnxbqy.UI.ExitGameWin>();
//                 }
//                 else
//                 {
//                     //默认都是退出游戏
//                     Application.Quit();
//                 }
//                 break;
//         }
//         onSdkMsg?.Invoke(_code, _json);
                    onShareFBResult?.Invoke();
                    break;
                }
            case CodeA2U.ExitGame:
                if (ChannelPlatform == E_ChannelPlatform.Free)
                {
                    // WindowCenter.Instance.Open<ExitGameWin>();
                }
                else
                {
                    //默认都是退出游戏
                    Application.Quit();
                }
                break;
        }
        onSdkMsg?.Invoke(_code, _json);
    }
    #endregion
@@ -971,10 +900,7 @@
        m_Json.Clear();
        m_Json["code"] = CodeU2A.FreePlatformLogout;
        SendMessageToSDK(m_Json);
        if (ChannelPlatform == E_ChannelPlatform.Yl)
        {
            FreePlatformLogin();
        }
        // FreePlatformLogin();
#endif
    }
    public void ShowAccountView()
@@ -983,10 +909,9 @@
        m_Json.Clear();
        m_Json["code"] = CodeU2A.ShowAccountView;
        SendMessageToSDK(m_Json);
        if (ChannelPlatform == E_ChannelPlatform.Yl)
        {
            FreePlatformLogin();
        }
        // FreePlatformLogin();
#endif
    }
    public void FreePlatformSwitchAccount()
@@ -1016,53 +941,53 @@
    public void FreePlatformPay(string title, float money, string cpInfo)
    {
        // 提示是否使用代金券
        // var gameCash = UIHelper.GetAllVourcher();
        var gameCash = UIHelper.GetAllVourcher();
        // bool isBuyGameCash = false; //代金券本身的充值不能用代金券购买 造成循环
        // int ctgID = ModelCenter.Instance.GetModel<VipModel>().orderInfoToCTGID[cpInfo];
        // if (ctgID != 0)
        // {
        //     isBuyGameCash = CTGConfig.Get(ctgID).PayType == 17;
        // }
        bool isBuyGameCash = false; //代金券本身的充值不能用代金券购买 造成循环
        int ctgID = RechargeManager.Instance.orderInfoToCTGID[cpInfo];
        if (ctgID != 0)
        {
            isBuyGameCash = CTGConfig.Get(ctgID).PayType == 17;
        }
        // if (!isBuyGameCash && gameCash >= money * 100 && !LoginAwardModel.rechargeLimit.Contains(ctgID))
        // {
        if (!isBuyGameCash && gameCash >= money * 100)
        {
        //     WindowCenter.Instance.Close<GotoChargeWin>();
        //     if (DayRemind.Instance.GetDayRemind(DayRemind.DJQTip))
        //     {
        //         var pack = new CA125_tagCMCoinBuyOrderInfo();
        //         pack.AppID = VersionConfig.Get().appId;
        //         pack.AppIDLen = (byte)pack.AppID.Length;
        //         pack.OrderInfo = cpInfo;
        //         pack.OrderInfoLen = (byte)pack.OrderInfo.Length;
        //         GameNetSystem.Instance.SendInfo(pack);
        //     }
        //     else
        //     {
        //         ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), Language.Get("GameCashRule1", money), Language.Get("TodayNoNotify"), (bool isOk, bool isToggle) =>
        //         {
        //             if (isOk)
        //             {
        //                 var pack = new CA125_tagCMCoinBuyOrderInfo();
        //                 pack.AppID = VersionConfig.Get().appId;
        //                 pack.AppIDLen = (byte)pack.AppID.Length;
        //                 pack.OrderInfo = cpInfo;
        //                 pack.OrderInfoLen = (byte)pack.OrderInfo.Length;
        //                 GameNetSystem.Instance.SendInfo(pack);
        //             }
        //             if (isToggle)
        //             {
        //                 DayRemind.Instance.SetDayRemind(DayRemind.DJQTip, true);
        //             }
        //         });
        //     }
        // }
        // else
        // {
        //     FreePlatformPayEx(title, money, cpInfo);
        // }
            UIManager.Instance.CloseWindow<GotoChargeWin>();
            if (DayRemind.Instance.GetDayRemind(DayRemind.DJQTip))
            {
                var pack = new CA125_tagCMCoinBuyOrderInfo();
                pack.AppID = VersionConfig.Get().appId;
                pack.AppIDLen = (byte)pack.AppID.Length;
                pack.OrderInfo = cpInfo;
                pack.OrderInfoLen = (byte)pack.OrderInfo.Length;
                GameNetSystem.Instance.SendInfo(pack);
            }
            else
            {
                ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), Language.Get("GameCashRule1", money), Language.Get("TodayNoNotify"), (bool isOk, bool isToggle) =>
                {
                    if (isOk)
                    {
                        var pack = new CA125_tagCMCoinBuyOrderInfo();
                        pack.AppID = VersionConfig.Get().appId;
                        pack.AppIDLen = (byte)pack.AppID.Length;
                        pack.OrderInfo = cpInfo;
                        pack.OrderInfoLen = (byte)pack.OrderInfo.Length;
                        GameNetSystem.Instance.SendInfo(pack);
                    }
                    if (isToggle)
                    {
                        DayRemind.Instance.SetDayRemind(DayRemind.DJQTip, true);
                    }
                });
            }
        }
        else
        {
            FreePlatformPayEx(title, money, cpInfo);
        }
    }
    public void FreePlatformPayEx(string title, float money, string cpInfo)
@@ -1115,7 +1040,7 @@
//         m_Json["vipLevel"] = PlayerDatas.Instance.baseData.VIPLv.ToString();
//         m_Json["createTime"] = TimeUtility.CreateSeconds.ToString();
//         m_Json["familyID"] = PlayerDatas.Instance.baseData.FamilyId.ToString();
//         m_Json["fightPower"] = PlayerDatas.Instance.baseData.FightPoint.ToString();
//         m_Json["fightPower"] = PlayerDatas.Instance.baseData.FightPower.ToString();
// #if UNITY_IOS
//         m_Json["identifier"] = VersionConfig.Get().bundleIdentifier;
@@ -1313,7 +1238,7 @@
        // m_Json["vipLevel"] = PlayerDatas.Instance.baseData.VIPLv.ToString();
        // m_Json["createTime"] = time;
        // m_Json["familyID"] = PlayerDatas.Instance.baseData.FamilyId.ToString();
        // m_Json["fightPower"] = PlayerDatas.Instance.baseData.FightPoint.ToString();
        // m_Json["fightPower"] = PlayerDatas.Instance.baseData.FightPower.ToString();
        // SendMessageToSDK(m_Json);
    }
@@ -1350,7 +1275,7 @@
        // m_Json["vipLevel"] = PlayerDatas.Instance.baseData.VIPLv.ToString();
        // m_Json["createTime"] = TimeUtility.CreateSeconds.ToString();
        // m_Json["familyID"] = PlayerDatas.Instance.baseData.FamilyId.ToString();
        // m_Json["fightPower"] = PlayerDatas.Instance.baseData.FightPoint.ToString();
        // m_Json["fightPower"] = PlayerDatas.Instance.baseData.FightPower.ToString();
        // SendMessageToSDK(m_Json);
    }
@@ -1372,18 +1297,19 @@
        m_Json["levelUpTime"] = TimeUtility.AllSeconds.ToString();
        m_Json["createTime"] = TimeUtility.CreateSeconds.ToString();
        m_Json["familyID"] = PlayerDatas.Instance.baseData.FamilyId.ToString();
        m_Json["fightPower"] = PlayerDatas.Instance.baseData.FightPoint.ToString();
        m_Json["fightPower"] = PlayerDatas.Instance.baseData.FightPower.ToString();
        SendMessageToSDK(m_Json);
    }
    public void RoleLoginOut()
    {
        if (PlayerDatas.Instance.PlayerId == 0/* || PlayerDatas.Instance.hero == null*/)
        if (PlayerDatas.Instance.PlayerId == 0)
            return;
        if (!DTC0403_tagPlayerLoginLoadOK.finishedLogin)
            return;
        if (DTC0403_tagPlayerLoginLoadOK.neverLoginOk) return;
        m_Json.Clear();
        m_Json["code"] = CodeU2A.RoleLoginOut;
@@ -1400,7 +1326,7 @@
        m_Json["levelUpTime"] = TimeUtility.AllSeconds.ToString();
        m_Json["createTime"] = TimeUtility.CreateSeconds.ToString();
        m_Json["familyID"] = PlayerDatas.Instance.baseData.FamilyId.ToString();
        m_Json["fightPower"] = PlayerDatas.Instance.baseData.FightPoint.ToString();
        m_Json["fightPower"] = PlayerDatas.Instance.baseData.FightPower.ToString();
        SendMessageToSDK(m_Json);
    }