package com.secondworld.universalsdk; 
 | 
  
 | 
import android.Manifest; 
 | 
import android.app.Activity; 
 | 
import android.app.AlertDialog; 
 | 
import android.content.ClipData; 
 | 
import android.content.ClipboardManager; 
 | 
import android.content.Context; 
 | 
import android.content.DialogInterface; 
 | 
import android.content.Intent; 
 | 
import android.content.pm.PackageManager; 
 | 
import android.content.res.Configuration; 
 | 
import android.net.Uri; 
 | 
import android.os.Build; 
 | 
import android.os.Bundle; 
 | 
import android.os.Environment; 
 | 
import android.provider.Settings; 
 | 
import android.support.v4.app.ActivityCompat; 
 | 
import android.support.v4.content.ContextCompat; 
 | 
import android.support.v4.content.FileProvider; 
 | 
import android.text.method.QwertyKeyListener; 
 | 
import android.util.Log; 
 | 
import android.widget.Toast; 
 | 
  
 | 
import com.quicksdk.QuickSDK; 
 | 
import com.quicksdk.Sdk; 
 | 
import com.quicksdk.User; 
 | 
import com.quicksdk.entity.GameRoleInfo; 
 | 
import com.quicksdk.entity.OrderInfo; 
 | 
import com.quicksdk.Payment; 
 | 
import com.secondworld.univeralsdk.R; 
 | 
import com.unity3d.player.UnityPlayer; 
 | 
  
 | 
import org.json.JSONException; 
 | 
import org.json.JSONObject; 
 | 
  
 | 
import java.io.File; 
 | 
import java.io.UnsupportedEncodingException; 
 | 
import java.net.URLEncoder; 
 | 
import java.util.HashMap; 
 | 
import java.util.Map; 
 | 
  
 | 
import cn.jpush.android.api.JPushInterface; 
 | 
import cn.jpush.android.data.JPushLocalNotification; 
 | 
  
 | 
public class H2EngineSDK 
 | 
{ 
 | 
    private static final String TAG = "H2EngineSDK"; 
 | 
    private static String APP_ID = ""; 
 | 
    private static boolean PushEnable = false; 
 | 
  
 | 
    public static void HandleUnityMessage(String json) 
 | 
    { 
 | 
        LogUtil.i(TAG, "收到Unity发来的信息: " + json); 
 | 
        Activity _activity = UnityPlayer.currentActivity; 
 | 
        try 
 | 
        { 
 | 
            JSONObject _json = new JSONObject(json); 
 | 
            int _code = _json.getInt("code"); 
 | 
  
 | 
            switch (_code) 
 | 
            { 
 | 
                case CodeU2A.Init: 
 | 
                    APP_ID = _json.getString("appID"); 
 | 
                    init(_activity); 
 | 
                    break; 
 | 
                case CodeU2A.CopyOneAsset: 
 | 
                    FileUtil.copy(_activity, _json.getString("fileName")); 
 | 
                    break; 
 | 
                case CodeU2A.AssetCopy: 
 | 
                    FileUtil.copyAssets(_activity); 
 | 
                    break; 
 | 
                case CodeU2A.BatteryListenStart: 
 | 
                    BatteryUtil.getInstance().start(_activity); 
 | 
                    break; 
 | 
                case CodeU2A.BatteryListenStop: 
 | 
                    BatteryUtil.getInstance().stop(_activity); 
 | 
                    break; 
 | 
                case CodeU2A.UniqueID: 
 | 
                    break; 
 | 
                case CodeU2A.CopyContent: 
 | 
                    CopyContent(_activity, _json.getString("content")); 
 | 
                    break; 
 | 
                case CodeU2A.OpenWebView: 
 | 
                    WebViewUtil.OpenWebView(_activity, _json.getString("url")); 
 | 
                    break; 
 | 
                case CodeU2A.RestartApp: 
 | 
                    RestartApp(_activity); 
 | 
                    break; 
 | 
                case CodeU2A.InstallAPK: 
 | 
                    InstallApp(_activity, _json.getString("path")); 
 | 
                    break; 
 | 
                case CodeU2A.ExteneralStorage: 
 | 
                    GetExternalStorage(); 
 | 
                    break; 
 | 
                case CodeU2A.RequestPermission: 
 | 
                    break; 
 | 
                case CodeU2A.RequestManifestPermissions: 
 | 
                    break; 
 | 
                case CodeU2A.FreePlatformInit: 
 | 
                    break; 
 | 
                case CodeU2A.FreePlatformLogin: 
 | 
                    //QuickPlatformUtil.getInstance().login(_activity); 
 | 
                    LoginEx(_activity); 
 | 
                    break; 
 | 
                case CodeU2A.FreePlatformSwitchAccount: 
 | 
                    break; 
 | 
                case CodeU2A.FreePlatformLogout: 
 | 
                    //QuickPlatformUtil.getInstance().logout(_activity); 
 | 
                    LogoutEx(_activity); 
 | 
                    break; 
 | 
                case CodeU2A.FreePlatformPay: 
 | 
  
 | 
                    JSONObject _extraData = new JSONObject(); 
 | 
                    String _appid = com.quicksdk.Extend.getInstance().getExtrasConfig("zfappid"); 
 | 
                    if (_appid == "") 
 | 
                    { 
 | 
                        //没有打包的自定义参数则取配置表 
 | 
                        _appid = APP_ID; 
 | 
                    } 
 | 
                    _extraData.put("appid", _appid); 
 | 
                    _extraData.put("cpinfo", _json.getString("cpInfo")); 
 | 
                    _extraData.put("cporderid", _json.getString("orderId")); 
 | 
                    try 
 | 
                    { 
 | 
//                        YJPlatformUtil.getInstance().payExtend(_activity, 
 | 
//                                                         _json.getString("title"), 
 | 
//                                                         _json.getString("cpInfo"), 
 | 
//                                                         (float) _json.getDouble("mount"), 
 | 
//                                                         URLEncoder.encode(_extraData.toString(), 
 | 
//                                                                           "utf-8")); 
 | 
//                        if (_yjAppID.contains("mzgame") 
 | 
//                                || _yjAppID.contains("ucgame") 
 | 
//                                || _yjAppID.contains("yybgame")) 
 | 
//                        { 
 | 
//                            QuickPlatformUtil.getInstance().pay(_activity, 
 | 
//                                                             _json.getString("title"), 
 | 
//                                                             _json.getString("cpInfo"), 
 | 
//                                                             (float) _json.getDouble("mount"), 
 | 
//                                                             URLEncoder.encode( 
 | 
//                                                                     _extraData.toString(), 
 | 
//                                                                     "utf-8")); 
 | 
//                        } 
 | 
//                        else 
 | 
//                        { 
 | 
//                            QuickPlatformUtil.getInstance().charge(_activity, 
 | 
//                                                                _json.getString("title"), 
 | 
//                                                                (float) _json.getDouble("mount"), 
 | 
//                                                                URLEncoder.encode( 
 | 
//                                                                        _extraData.toString(), 
 | 
//                                                                        "utf-8")); 
 | 
//                        } 
 | 
  
 | 
                        GameRoleInfo roleInfo3 = new GameRoleInfo(); 
 | 
                        roleInfo3.setServerID(_json.getString("sid")); 
 | 
                        roleInfo3.setServerName(_json.getString("serverName")); 
 | 
                        roleInfo3.setGameRoleName(_json.getString("roleName").trim().replace(" ", "")); 
 | 
                        roleInfo3.setGameRoleID(_json.getString("roleID")); 
 | 
                        roleInfo3.setGameBalance(_json.getString("money")); 
 | 
                        roleInfo3.setVipLevel(_json.getString("vipLevel"));  //设置当前用户vip等级,必须为数字整型字符串,请勿传"vip1"等类似字符串 
 | 
                        roleInfo3.setGameUserLevel(_json.getString("level"));//设置游戏角色等级 
 | 
                        roleInfo3.setPartyName(_json.getString("familyName").trim().replace(" ", ""));//设置帮派名称 
 | 
                        roleInfo3.setRoleCreateTime(_json.getString("createTime")); //UC,当乐与1881,TT渠道必传,值为10位数时间戳 
 | 
  
 | 
                        roleInfo3.setPartyId("1100"); //360渠道参数,设置帮派id,必须为整型字符串 
 | 
                        roleInfo3.setGameRolePower("38"); //360,TT语音渠道参数,设置角色战力,必须为整型字符串 
 | 
                        roleInfo3.setPartyRoleId("11"); //360渠道参数,设置角色在帮派中的id 
 | 
                        roleInfo3.setPartyRoleName("帮主"); //360渠道参数,设置角色在帮派中的名称 
 | 
                        roleInfo3.setProfessionId("38"); //360渠道参数,设置角色职业id,必须为整型字符串 
 | 
                        roleInfo3.setProfession("法师"); //360渠道参数,设置角色职业名称 
 | 
                        roleInfo3.setFriendlist( 
 | 
                                "无"); //360渠道参数,设置好友关系列表,格式请参考:http://open.quicksdk.net/help/detail/aid/190 
 | 
                        OrderInfo orderInfo = new OrderInfo(); 
 | 
                        orderInfo.setCpOrderID(_json.getString("orderId")); 
 | 
                        orderInfo.setGoodsName(_json.getString("title"));//商品名称,不带数量 
 | 
                        orderInfo.setCount(1);//游戏币数量 
 | 
                        orderInfo.setAmount((float) _json.getDouble("mount")); 
 | 
                        orderInfo.setGoodsID(_json.getString("cpInfo")); 
 | 
                        orderInfo.setGoodsDesc(_json.getString("title")); 
 | 
                        //orderInfo.setPrice(0.1); 
 | 
                        orderInfo.setExtrasParams( 
 | 
                                URLEncoder.encode(_extraData.toString(), "utf-8")); 
 | 
                        //Payment.getInstance().pay(_activity, orderInfo, roleInfo3); 
 | 
                        PayEx(_activity, orderInfo, roleInfo3); 
 | 
  
 | 
                    } catch (UnsupportedEncodingException e) 
 | 
                    { 
 | 
                        e.printStackTrace(); 
 | 
                    } 
 | 
  
 | 
                    break; 
 | 
                case CodeU2A.PayFinished: 
 | 
                    QuickPlatformUtil.getInstance().payProcessing = false; 
 | 
                    break; 
 | 
                case CodeU2A.CreateRole: 
 | 
                    GameRoleInfo roleInfo = new GameRoleInfo(); 
 | 
                    roleInfo.setServerID(_json.getString("sid")); 
 | 
                    roleInfo.setServerName(_json.getString("serverName")); 
 | 
                    roleInfo.setGameRoleName(_json.getString("roleName").trim().replace(" ", "")); 
 | 
                    roleInfo.setGameRoleID(_json.getString("roleID")); 
 | 
                    roleInfo.setGameBalance(_json.getString("money")); 
 | 
                    roleInfo.setVipLevel( 
 | 
                            _json.getString("vipLevel"));  //设置当前用户vip等级,必须为数字整型字符串,请勿传"vip1"等类似字符串 
 | 
                    roleInfo.setGameUserLevel(_json.getString("level"));//设置游戏角色等级 
 | 
                    roleInfo.setPartyName(_json.getString("familyName").trim().replace(" ", 
 | 
                                                                                       ""));//设置帮派名称 
 | 
                    roleInfo.setRoleCreateTime( 
 | 
                            _json.getString("createTime")); //UC,当乐与1881,TT渠道必传,值为10位数时间戳 
 | 
  
 | 
                    roleInfo.setPartyId("1100"); //360渠道参数,设置帮派id,必须为整型字符串 
 | 
                    roleInfo.setGameRolePower("38"); //360,TT语音渠道参数,设置角色战力,必须为整型字符串 
 | 
                    roleInfo.setPartyRoleId("11"); //360渠道参数,设置角色在帮派中的id 
 | 
                    roleInfo.setPartyRoleName("帮主"); //360渠道参数,设置角色在帮派中的名称 
 | 
                    roleInfo.setProfessionId("38"); //360渠道参数,设置角色职业id,必须为整型字符串 
 | 
                    roleInfo.setProfession("法师"); //360渠道参数,设置角色职业名称 
 | 
                    roleInfo.setFriendlist( 
 | 
                            "无"); //360渠道参数,设置好友关系列表,格式请参考:http://open.quicksdk.net/help/detail/aid/190 
 | 
                    //User.getInstance().setGameRoleInfo(_activity, roleInfo, true); 
 | 
                    SetRoleInfoEx(_activity, roleInfo, true); 
 | 
//                    QuickPlatformUtil.getInstance().createRole(_activity, 
 | 
//                                                            _json.getString("sid"), 
 | 
//                                                            _json.getString("serverName"), 
 | 
//                                                            _json.getString("roleID"), 
 | 
//                                                            _json.getString("roleName").trim() 
 | 
//                                                                    .replace(" ", ""), 
 | 
//                                                            _json.getString("level"), 
 | 
//                                                            _json.getString("familyName").trim() 
 | 
//                                                                    .replace(" ", ""), 
 | 
//                                                            _json.getString("createTime"), 
 | 
//                                                            _json.getString("vipLevel"), 
 | 
//                                                            _json.getString("money")); 
 | 
                    break; 
 | 
                case CodeU2A.RoleLogin: 
 | 
                    GameRoleInfo roleInfo1 = new GameRoleInfo(); 
 | 
                    roleInfo1.setServerID(_json.getString("sid")); 
 | 
                    roleInfo1.setServerName(_json.getString("serverName")); 
 | 
                    roleInfo1.setGameRoleName(_json.getString("roleName").trim().replace(" ", "")); 
 | 
                    roleInfo1.setGameRoleID(_json.getString("roleID")); 
 | 
                    roleInfo1.setGameBalance(_json.getString("money")); 
 | 
                    roleInfo1.setVipLevel( 
 | 
                            _json.getString("vipLevel"));  //设置当前用户vip等级,必须为数字整型字符串,请勿传"vip1"等类似字符串 
 | 
                    roleInfo1.setGameUserLevel(_json.getString("level"));//设置游戏角色等级 
 | 
                    roleInfo1.setPartyName(_json.getString("familyName").trim().replace(" ", 
 | 
                                                                                        ""));//设置帮派名称 
 | 
                    roleInfo1.setRoleCreateTime( 
 | 
                            _json.getString("createTime")); //UC,当乐与1881,TT渠道必传,值为10位数时间戳 
 | 
  
 | 
                    roleInfo1.setPartyId("1100"); //360渠道参数,设置帮派id,必须为整型字符串 
 | 
                    roleInfo1.setGameRolePower("38"); //360,TT语音渠道参数,设置角色战力,必须为整型字符串 
 | 
                    roleInfo1.setPartyRoleId("11"); //360渠道参数,设置角色在帮派中的id 
 | 
                    roleInfo1.setPartyRoleName("帮主"); //360渠道参数,设置角色在帮派中的名称 
 | 
                    roleInfo1.setProfessionId("38"); //360渠道参数,设置角色职业id,必须为整型字符串 
 | 
                    roleInfo1.setProfession("法师"); //360渠道参数,设置角色职业名称 
 | 
                    roleInfo1.setFriendlist( 
 | 
                            "无"); //360渠道参数,设置好友关系列表,格式请参考:http://open.quicksdk.net/help/detail/aid/190 
 | 
                    //User.getInstance().setGameRoleInfo(_activity, roleInfo1, false); 
 | 
                    SetRoleInfoEx(_activity, roleInfo1, false); 
 | 
//                    QuickPlatformUtil.getInstance().enterWorld(_activity, 
 | 
//                                                            _json.getString("sid"), 
 | 
//                                                            _json.getString("serverName"), 
 | 
//                                                            _json.getString("roleID"), 
 | 
//                                                            _json.getString("roleName").trim() 
 | 
//                                                                    .replace(" ", ""), 
 | 
//                                                            _json.getString("level"), 
 | 
//                                                            _json.getString("familyName").trim() 
 | 
//                                                                    .replace(" ", ""), 
 | 
//                                                            _json.getString("vipLevel"), 
 | 
//                                                            _json.getString("money")); 
 | 
                    verifyRealName(_activity); 
 | 
                    break; 
 | 
                case CodeU2A.RoleLevelUp: 
 | 
                    GameRoleInfo roleInfo2 = new GameRoleInfo(); 
 | 
                    roleInfo2.setServerID(_json.getString("sid")); 
 | 
                    roleInfo2.setServerName(_json.getString("serverName")); 
 | 
                    roleInfo2.setGameRoleName(_json.getString("roleName").trim().replace(" ", "")); 
 | 
                    roleInfo2.setGameRoleID(_json.getString("roleID")); 
 | 
                    roleInfo2.setGameBalance(_json.getString("money")); 
 | 
                    roleInfo2.setVipLevel( 
 | 
                            _json.getString("vipLevel"));  //设置当前用户vip等级,必须为数字整型字符串,请勿传"vip1"等类似字符串 
 | 
                    roleInfo2.setGameUserLevel(_json.getString("level"));//设置游戏角色等级 
 | 
                    roleInfo2.setPartyName(_json.getString("familyName").trim().replace(" ", 
 | 
                                                                                        ""));//设置帮派名称 
 | 
                    roleInfo2.setRoleCreateTime( 
 | 
                            _json.getString("createTime")); //UC,当乐与1881,TT渠道必传,值为10位数时间戳 
 | 
  
 | 
                    roleInfo2.setPartyId("1100"); //360渠道参数,设置帮派id,必须为整型字符串 
 | 
                    roleInfo2.setGameRolePower("38"); //360,TT语音渠道参数,设置角色战力,必须为整型字符串 
 | 
                    roleInfo2.setPartyRoleId("11"); //360渠道参数,设置角色在帮派中的id 
 | 
                    roleInfo2.setPartyRoleName("帮主"); //360渠道参数,设置角色在帮派中的名称 
 | 
                    roleInfo2.setProfessionId("38"); //360渠道参数,设置角色职业id,必须为整型字符串 
 | 
                    roleInfo2.setProfession("法师"); //360渠道参数,设置角色职业名称 
 | 
                    roleInfo2.setFriendlist( 
 | 
                            "无"); //360渠道参数,设置好友关系列表,格式请参考:http://open.quicksdk.net/help/detail/aid/190 
 | 
  
 | 
                    //User.getInstance().setGameRoleInfo(_activity, roleInfo2, false); 
 | 
                    SetRoleInfoEx(_activity, roleInfo2, false); 
 | 
//                    QuickPlatformUtil.getInstance().levelUp(_activity, 
 | 
//                                                         _json.getString("sid"), 
 | 
//                                                         _json.getString("serverName"), 
 | 
//                                                         _json.getString("roleID"), 
 | 
//                                                         _json.getString("roleName").trim() 
 | 
//                                                                 .replace(" ", ""), 
 | 
//                                                         _json.getString("level"), 
 | 
//                                                         _json.getString("familyName").trim() 
 | 
//                                                                 .replace(" ", ""), 
 | 
//                                                         _json.getString("createTime"), 
 | 
//                                                         _json.getString("levelUpTime"), 
 | 
//                                                         _json.getString("vipLevel"), 
 | 
//                                                         _json.getString("money")); 
 | 
                    break; 
 | 
                case CodeU2A.ClientPackage: 
 | 
                    break; 
 | 
                case CodeU2A.JPushAddLocalMessage: 
 | 
                    addLocalNotification(_activity, 
 | 
                                         _json.getInt("id"), 
 | 
                                         _json.getString("title"), 
 | 
                                         _json.getString("content"), 
 | 
                                         _json.getLong("fireTime")); 
 | 
                    break; 
 | 
                case CodeU2A.JPushRemoveLocalMessage: 
 | 
                    removeNotification(_activity, _json.getInt("id")); 
 | 
                    break; 
 | 
                case CodeU2A.TencentLogin: 
 | 
                    //QuickPlatformUtil.getInstance().loginTencent(_activity, _json.getString("param")); 
 | 
                    break; 
 | 
                case CodeU2A.SendRegistEvent: 
 | 
                    //QuickPlatformUtil.getInstance().SendRegisterEvent(); 
 | 
                    break; 
 | 
            } 
 | 
  
 | 
        } catch (JSONException e) 
 | 
        { 
 | 
            e.printStackTrace(); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    // 本地推送 
 | 
    public static void addLocalNotification(Activity activity, int id, String title, String content, 
 | 
                                            long fireTime) 
 | 
    { 
 | 
        if (PushEnable) 
 | 
        { 
 | 
            try 
 | 
            { 
 | 
                JPushLocalNotification ln = new JPushLocalNotification(); 
 | 
                ln.setBuilderId(0);// 设置样式 
 | 
                ln.setNotificationId(id);// id 
 | 
                ln.setTitle(title);// 标题 
 | 
  
 | 
                ln.setContent(content);// 内容 
 | 
                ln.setBroadcastTime(fireTime);// 等待时间 
 | 
                JPushInterface.addLocalNotification(activity, ln); 
 | 
            } catch (Exception e) 
 | 
            { 
 | 
                e.printStackTrace(); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public static void removeNotification(Activity activity, int id) 
 | 
    { 
 | 
        if (PushEnable) 
 | 
        { 
 | 
            JPushInterface.removeLocalNotification(activity, id); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public static void GetExternalStorage() 
 | 
    { 
 | 
        Map<String, Object> _msg = new HashMap<>(); 
 | 
        _msg.put("code", CodeA2U.ExternalStorage); 
 | 
        _msg.put("path", Environment.getExternalStorageDirectory().getAbsolutePath()); 
 | 
        UniversalUtil.sendMessageToUnity(_msg); 
 | 
    } 
 | 
  
 | 
    public static void InstallApp(Activity activity, String path) 
 | 
    { 
 | 
        File _file = new File(path); 
 | 
  
 | 
        if (_file == null) 
 | 
        { 
 | 
            LogUtil.i(TAG, "找不到给定地址的apk: " + path); 
 | 
            return; 
 | 
        } 
 | 
  
 | 
        try 
 | 
        { 
 | 
            Intent _intent = new Intent(Intent.ACTION_VIEW); 
 | 
  
 | 
            if (Build.VERSION.SDK_INT >= 23) 
 | 
            { 
 | 
                _intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
 | 
                Uri _contentUri = FileProvider.getUriForFile(activity, 
 | 
                                                             "com.shandangceshi.snxxz.fileProvider", 
 | 
                                                             _file); 
 | 
                _intent.setDataAndType(_contentUri, "application/vnd.android.package-archive"); 
 | 
  
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                _intent.setDataAndType(Uri.fromFile(_file), 
 | 
                                       "application/vnd.android.package-archive"); 
 | 
                _intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
 | 
            } 
 | 
  
 | 
            activity.startActivity(_intent); 
 | 
  
 | 
        } catch (Exception e) 
 | 
        { 
 | 
            e.printStackTrace(); 
 | 
            Toast.makeText(activity, "没有找到打开此类文件的程序", Toast.LENGTH_SHORT).show(); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public static void LoginEx(final Activity activity) 
 | 
    { 
 | 
        activity.runOnUiThread(new Runnable() 
 | 
        { 
 | 
            @Override 
 | 
            public void run() 
 | 
            { 
 | 
                QuickPlatformUtil.getInstance().login(activity); 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
    public static void LogoutEx(final Activity activity) 
 | 
    { 
 | 
        activity.runOnUiThread(new Runnable() 
 | 
        { 
 | 
            @Override 
 | 
            public void run() 
 | 
            { 
 | 
                QuickPlatformUtil.getInstance().logout(activity); 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
    public static void SetRoleInfoEx(final Activity activity, final GameRoleInfo roleInfo, final boolean createRole) 
 | 
    { 
 | 
        activity.runOnUiThread(new Runnable() 
 | 
        { 
 | 
            @Override 
 | 
            public void run() 
 | 
            { 
 | 
                User.getInstance().setGameRoleInfo(activity, roleInfo, createRole); 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
    public static void PayEx(final Activity activity, final OrderInfo orderInfo, final GameRoleInfo roleInfo) 
 | 
    { 
 | 
        activity.runOnUiThread(new Runnable() 
 | 
        { 
 | 
            @Override 
 | 
            public void run() 
 | 
            { 
 | 
                Payment.getInstance().pay(activity, orderInfo, roleInfo); 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
  
 | 
    public static void CopyContent(final Activity activity, final String content) 
 | 
    { 
 | 
        activity.runOnUiThread(new Runnable() 
 | 
        { 
 | 
            @Override 
 | 
            public void run() 
 | 
            { 
 | 
                ClipboardManager _mgr = (ClipboardManager) activity.getSystemService( 
 | 
                        Context.CLIPBOARD_SERVICE); 
 | 
                ClipData _data = ClipData.newPlainText("playerId", content); 
 | 
                _mgr.setPrimaryClip(_data); 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
    public static void RestartApp(final Activity activity) 
 | 
    { 
 | 
        activity.runOnUiThread(new Runnable() 
 | 
        { 
 | 
            @Override 
 | 
            public void run() 
 | 
            { 
 | 
                new Thread() 
 | 
                { 
 | 
                    public void run() 
 | 
                    { 
 | 
                        String _pn = activity.getPackageName(); 
 | 
                        PackageManager _pm = activity.getPackageManager(); 
 | 
                        Intent _l = _pm.getLaunchIntentForPackage(_pn); 
 | 
                        _l.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
 | 
                        activity.startActivity(_l); 
 | 
                        android.os.Process.killProcess(android.os.Process.myPid()); 
 | 
                    } 
 | 
                }.start(); 
 | 
                activity.finish(); 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
    public static void init(final Activity activity) 
 | 
    { 
 | 
        final int _memoryTotal = (int) (UniversalUtil.getMemTotal() / 1024); 
 | 
        if (_memoryTotal < 1024) 
 | 
        { 
 | 
            LogUtil.i(TAG, "检测设备内存不满足运行程序标准"); 
 | 
            AlertDialog.Builder _builder = new AlertDialog.Builder(activity); 
 | 
            _builder.setIcon(R.drawable.app_icon); 
 | 
            _builder.setTitle("警告"); 
 | 
            _builder.setMessage("您的手机内存不足,无法正常运行游戏"); 
 | 
            _builder.setPositiveButton("确定", new DialogInterface.OnClickListener() 
 | 
            { 
 | 
                @Override 
 | 
                public void onClick(DialogInterface dialogInterface, int i) 
 | 
                { 
 | 
                    android.os.Process.killProcess(android.os.Process.myPid()); 
 | 
                } 
 | 
            }); 
 | 
            _builder.show(); 
 | 
            return; 
 | 
        } 
 | 
  
 | 
        //PushEnable = activity.getPackageName().equals("com.xjaz.sp"); 
 | 
  
 | 
        new Thread(new Runnable() 
 | 
        { 
 | 
            @Override 
 | 
            public void run() 
 | 
            { 
 | 
                LogUtil.i(TAG, "开始执行初始化"); 
 | 
  
 | 
                GetExternalStorage(); 
 | 
  
 | 
                // ------------------------------- 设备信息 ------------------------------- 
 | 
                Map<String, Object> _msgStruct = new HashMap<>(); 
 | 
                _msgStruct.put("code", CodeA2U.DeviceInfo); 
 | 
                _msgStruct.put("userAgent", System.getProperty("http.agent")); 
 | 
                _msgStruct.put("mac", UniqueID.getLocalMac(activity)); 
 | 
                _msgStruct.put("imei", UniqueID.getDeviceId(activity)); 
 | 
                _msgStruct.put("android_id", 
 | 
                               Settings.System.getString(activity.getContentResolver(), 
 | 
                                                         Settings.System.ANDROID_ID)); 
 | 
                _msgStruct.put("unique_id", UniqueID.get(activity)); 
 | 
                _msgStruct.put("memoryTotal", _memoryTotal); 
 | 
                UniversalUtil.sendMessageToUnity(_msgStruct); 
 | 
  
 | 
                // ------------------------------- 极光推送 ------------------------------- 
 | 
                String _registrationID = "0"; 
 | 
                if (PushEnable) 
 | 
                { 
 | 
                    JPushInterface.setDebugMode(true); 
 | 
                    JPushInterface.init(activity); 
 | 
  
 | 
                    final long _waitingTime = System.currentTimeMillis(); 
 | 
  
 | 
                    while (true) 
 | 
                    { 
 | 
                        // 等待获取极光registrationID 
 | 
                        if (!JPushInterface.getRegistrationID(activity).equals("")) 
 | 
                        { 
 | 
                            _registrationID = JPushInterface.getRegistrationID(activity); 
 | 
                            break; 
 | 
                        } 
 | 
  
 | 
                        long _escapeTime = System.currentTimeMillis() - _waitingTime; 
 | 
  
 | 
                        if (_escapeTime > 3000) 
 | 
                        { 
 | 
                            LogUtil.w(TAG, "等待获取极光推送registrationID超时: 3秒"); 
 | 
                            break; 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
  
 | 
                _msgStruct.clear(); 
 | 
                _msgStruct.put("code", CodeA2U.PushClientID); 
 | 
                _msgStruct.put("clientID", _registrationID); 
 | 
                UniversalUtil.sendMessageToUnity(_msgStruct); 
 | 
  
 | 
                _msgStruct.clear(); 
 | 
                _msgStruct.put("code", CodeA2U.SdkInitComplete); 
 | 
                _msgStruct.put("channelPlatform", "quick"); 
 | 
                //根据appid是否相同和后台配置 可调整混服和专服 
 | 
                //打包工具可添加自定义参数 
 | 
                String _appid = com.quicksdk.Extend.getInstance().getExtrasConfig("zfappid"); 
 | 
                if (_appid == "") 
 | 
                { 
 | 
                    //没有打包的自定义参数则取配置表 
 | 
                    _appid = APP_ID; 
 | 
                } 
 | 
                //通知到unity中的账号已经加上渠道ID,保证appid和spid唯一对应, 需要注意和sdk交互时使用最原始的uid 
 | 
                _msgStruct.put("yj_appid", _appid); 
 | 
                _msgStruct.put("yj_spid", _appid); 
 | 
                UniversalUtil.sendMessageToUnity(_msgStruct); 
 | 
  
 | 
                LogUtil.i(TAG, "初始化执行完毕"); 
 | 
            } 
 | 
  
 | 
        }).start(); 
 | 
    } 
 | 
  
 | 
    public static void onCreate(Activity activity, Bundle savedInstanceState) 
 | 
    { 
 | 
        Sdk.getInstance().onCreate(activity); 
 | 
        try { 
 | 
            // check权限 
 | 
            if ((ContextCompat.checkSelfPermission(activity, 
 | 
                                                   Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) 
 | 
                    || (ContextCompat.checkSelfPermission(activity, 
 | 
                                                          Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)) { 
 | 
                // 没有 , 申请权限 权限数组 
 | 
                ActivityCompat.requestPermissions(activity, new String[] { 
 | 
                        Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE }, 1); 
 | 
            } else { 
 | 
                QuickPlatformUtil.getInstance().onCreate(); 
 | 
                Sdk.getInstance().init(activity,"83117201240610208090623254126665", "98671793"); 
 | 
            } 
 | 
        } catch (Exception e) { 
 | 
            QuickPlatformUtil.getInstance().onCreate(); 
 | 
            Sdk.getInstance().init(activity, "83117201240610208090623254126665", "98671793"); 
 | 
        } 
 | 
        QuickSDK.getInstance().setIsLandScape(true); 
 | 
    } 
 | 
  
 | 
    private static boolean m_IsFocus = true; 
 | 
  
 | 
    public static void onWindowFocusChanged(boolean b) 
 | 
    { 
 | 
        if (b) 
 | 
        { 
 | 
            if (QuickPlatformUtil.getInstance().payProcessing) 
 | 
            { 
 | 
                Map<String, Object> _msgStruct = new HashMap<>(); 
 | 
                _msgStruct.put("code", CodeA2U.FreePlatformPayCancel); 
 | 
                UniversalUtil.sendMessageToUnity(_msgStruct); 
 | 
                QuickPlatformUtil.getInstance().payProcessing = false; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        m_IsFocus = b; 
 | 
    } 
 | 
  
 | 
    public static void onNewIntent(final Activity activity, final Intent intent) 
 | 
    { 
 | 
        Sdk.getInstance().onNewIntent(intent); 
 | 
    } 
 | 
  
 | 
    public static void onActivityResult(int requestCode, 
 | 
                                        int resultCode, 
 | 
                                        final Intent data, 
 | 
                                        final Activity activity) 
 | 
    { 
 | 
        Sdk.getInstance().onActivityResult(activity, requestCode, resultCode, data); 
 | 
    } 
 | 
  
 | 
    public static void onConfigurationChanged(final Configuration newConfig) {} 
 | 
  
 | 
    public static void onRestart(final Activity activity) 
 | 
    { 
 | 
        Sdk.getInstance().onRestart(activity); 
 | 
    } 
 | 
  
 | 
    public static void onStart(final Activity activity) 
 | 
    { 
 | 
        Sdk.getInstance().onStart(activity); 
 | 
    } 
 | 
  
 | 
    public static void onPause(final Activity activity) 
 | 
    { 
 | 
        Sdk.getInstance().onPause(activity); 
 | 
    } 
 | 
  
 | 
    public static void onResume(final Activity activity) 
 | 
    { 
 | 
        Sdk.getInstance().onResume(activity); 
 | 
    } 
 | 
  
 | 
    public static void onStop(final Activity activity) 
 | 
    { 
 | 
        Sdk.getInstance().onStop(activity); 
 | 
    } 
 | 
  
 | 
    public static void onDestroy(final Activity activity) 
 | 
    { 
 | 
        Sdk.getInstance().onDestroy(activity); 
 | 
    } 
 | 
  
 | 
    private static void verifyRealName(final Activity activity) { 
 | 
        activity.runOnUiThread(new Runnable() { 
 | 
            @Override 
 | 
            public void run() { 
 | 
                // 判断渠道是否支持实名认证功能 
 | 
                if (com.quicksdk.Extend.getInstance().isFunctionSupported(com.quicksdk.FuncType.REAL_NAME_REGISTER)) { 
 | 
                    com.quicksdk.Extend.getInstance().callFunctionWithParamsCallBack(activity, com.quicksdk.FuncType.REAL_NAME_REGISTER, new com.quicksdk.BaseCallBack() { 
 | 
                        @Override 
 | 
                        public void onSuccess(Object... arg0) { 
 | 
                            if (arg0 != null && arg0.length > 0) { 
 | 
                                JSONObject jsonObject = (JSONObject) arg0[0]; 
 | 
                                Log.d("json", "==========" + jsonObject.toString()); 
 | 
                                try { 
 | 
                                    // 用户id 
 | 
                                    String uid = jsonObject.getString("uid"); 
 | 
                                    // 年龄, 如果渠道没返回默认为-1 
 | 
                                    int age = jsonObject.getInt("age"); 
 | 
                                    // 是否已实名 true表示已实名 
 | 
                                    // false表示未实名,如果渠道没返回默认为false 
 | 
                                    boolean realName = jsonObject.getBoolean("realName"); 
 | 
                                    // oppo实名认证失败之后是否可以继续游戏 true表示可以 
 | 
                                    // false表示不可以,如果渠道没返回默认为true 
 | 
                                    boolean resumeGame = jsonObject.getBoolean("resumeGame"); 
 | 
                                    // 预留字段,如果渠道没返回默认为""的字符串 
 | 
                                    String other = jsonObject.getString("other"); 
 | 
                                    // 游戏根据返回信息做对应的逻辑处理 
 | 
  
 | 
                                } catch (JSONException e) { 
 | 
  
 | 
                                } 
 | 
                            } 
 | 
                        } 
 | 
  
 | 
                        @Override 
 | 
                        public void onFailed(Object... arg0) { 
 | 
  
 | 
                        } 
 | 
                    }); 
 | 
                } 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
} 
 |