From 3bbd2c96b5f22c98cb0adef6378e75a9f404feaf Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 07 三月 2025 12:10:27 +0800
Subject: [PATCH] 0312 官网新sdk
---
Project/app/src/game_904100357/java/com/secondworld/univeralsdk/H2EngineSDK.java | 383 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 383 insertions(+), 0 deletions(-)
diff --git a/Project/app/src/game_904100357/java/com/secondworld/univeralsdk/H2EngineSDK.java b/Project/app/src/game_904100357/java/com/secondworld/univeralsdk/H2EngineSDK.java
new file mode 100644
index 0000000..dcda331
--- /dev/null
+++ b/Project/app/src/game_904100357/java/com/secondworld/univeralsdk/H2EngineSDK.java
@@ -0,0 +1,383 @@
+package com.secondworld.univeralsdk;
+
+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.Bundle;
+import android.os.Environment;
+import android.provider.Settings;
+import android.widget.Toast;
+
+import com.allugame.freesdk.port.FreePlatform;
+import com.unity3d.player.UnityPlayer;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.File;
+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";
+
+ 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:
+ init(_activity);
+ break;
+ case CodeU2A.AssetCopy:
+ FileUtil.copyAssets(_activity);
+ break;
+ case CodeU2A.CopyOneAsset:
+ FileUtil.copy(_activity, _json.getString("fileName"));
+ 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:
+ FreePlatformUtil.getInstace().init(_activity);
+ break;
+ case CodeU2A.FreePlatformLogin:
+ FreePlatformUtil.getInstace().login(_activity);
+ break;
+ case CodeU2A.FreePlatformSwitchAccount:
+ FreePlatformUtil.getInstace().switchAccount(_activity);
+ break;
+ case CodeU2A.FreePlatformLogout:
+ FreePlatformUtil.getInstace().logout();
+ break;
+ case CodeU2A.FreePlatformPay:
+ FreePlatformUtil.getInstace().pay(_activity,
+ _json.getString("title"),
+ _json.getString("orderId"),
+ (float) _json.getDouble("mount"),
+ _json.getString("cpInfo"));
+ FreePlatformUtil.getInstace().payProcessing = true;
+ break;
+ case CodeU2A.PayFinished:
+ FreePlatformUtil.getInstace().payProcessing = false;
+ 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.SendRegistEvent:
+ FreePlatformUtil.getInstance().SendRegisterEvent();
+ break;
+ }
+
+ } catch (JSONException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ // 鏈湴鎺ㄩ��
+ public static void addLocalNotification(Activity activity, int id, String title, String content,
+ long fireTime)
+ {
+ 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)
+ {
+ 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, "鎵句笉鍒扮粰瀹氬湴鍧�鐨刟pk: " + 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 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("鎮ㄧ殑鎵嬫満鍐呭瓨涓嶈冻,鏃犳硶姝e父杩愯娓告垙");
+ _builder.setPositiveButton("纭畾", new DialogInterface.OnClickListener()
+ {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i)
+ {
+ android.os.Process.killProcess(android.os.Process.myPid());
+ }
+ });
+ _builder.show();
+ return;
+ }
+
+ 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);
+
+ // ------------------------------- 鑷敱SDK -------------------------------
+ FreePlatformUtil.getInstace().init(activity);
+ // ------------------------------- 鏋佸厜鎺ㄩ�� -------------------------------
+ JPushInterface.setDebugMode(true);
+ JPushInterface.init(activity);
+
+ final long _waitingTime = System.currentTimeMillis();
+
+ while (true)
+ {
+ // 绛夊緟鑾峰彇鏋佸厜registrationID
+ if (!JPushInterface.getRegistrationID(activity).equals(""))
+ {
+ break;
+ }
+
+ long _escapeTime = System.currentTimeMillis() - _waitingTime;
+
+ if (_escapeTime > 3000)
+ {
+ LogUtil.w(TAG, "绛夊緟鑾峰彇鏋佸厜鎺ㄩ�乺egistrationID瓒呮椂: 3绉�");
+ break;
+ }
+ }
+
+ _msgStruct.clear();
+ _msgStruct.put("code", CodeA2U.PushClientID);
+ _msgStruct.put("clientID", JPushInterface.getRegistrationID(activity));
+ UniversalUtil.sendMessageToUnity(_msgStruct);
+
+ _msgStruct.clear();
+ _msgStruct.put("code", CodeA2U.SdkInitComplete);
+ UniversalUtil.sendMessageToUnity(_msgStruct);
+
+ LogUtil.i(TAG, "鍒濆鍖栨墽琛屽畬姣�");
+ }
+
+ }).start();
+ }
+
+ public static void onCreate(Activity activity, Bundle savedInstanceState)
+ {
+ FreePlatform.getInstance().onCreate();
+ }
+
+ public static void onWindowFocusChanged(boolean b)
+ {
+ }
+
+ public static void onNewIntent(final Activity activity, final Intent intent)
+ {
+ }
+
+ public static void onActivityResult(int requestCode,
+ int resultCode,
+ final Intent data,
+ final Activity activity)
+ {
+ }
+
+ public static void onConfigurationChanged(final Configuration newConfig) {}
+
+ public static void onRestart(final Activity activity)
+ {
+ }
+
+ public static void onStart(final Activity activity)
+ {
+ FreePlatform.getInstance().onStart();
+ }
+
+ public static void onPause(final Activity activity)
+ {
+ FreePlatform.getInstance().onPause();
+ }
+
+ public static void onResume(final Activity activity)
+ {
+ FreePlatform.getInstance().onResume();
+
+ if(FreePlatformUtil.getInstace().payProcessing)
+ {
+ Map<String, Object> _msgStruct = new HashMap<>();
+ _msgStruct.put("code", CodeA2U.FreePlatformPayCancel);
+ UniversalUtil.sendMessageToUnity(_msgStruct);
+ FreePlatformUtil.getInstace().payProcessing = false;
+ }
+ }
+
+ public static void onStop(final Activity activity)
+ {
+ FreePlatform.getInstance().onStop();
+ }
+
+ public static void onDestroy(final Activity activity)
+ {
+ FreePlatform.getInstance().onDestory();
+ }
+}
--
Gitblit v1.8.0