From eae160d56c5662a6d8d122fc20a7a300614e5a12 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期三, 11 十一月 2020 15:55:06 +0800
Subject: [PATCH] 0312 尝试修复部分机型横竖屏幕切换点击问题
---
SdkProject/library/src/main/java/com/secondworld/universalsdk/H2EngineSDK.java | 62 +++++++++++++++++++++++++++---
1 files changed, 55 insertions(+), 7 deletions(-)
diff --git a/SdkProject/library/src/main/java/com/secondworld/universalsdk/H2EngineSDK.java b/SdkProject/library/src/main/java/com/secondworld/universalsdk/H2EngineSDK.java
index 85832bb..c53960b 100644
--- a/SdkProject/library/src/main/java/com/secondworld/universalsdk/H2EngineSDK.java
+++ b/SdkProject/library/src/main/java/com/secondworld/universalsdk/H2EngineSDK.java
@@ -4,33 +4,81 @@
import org.json.JSONObject;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Enumeration;
import java.util.HashMap;
+import java.util.List;
+
+import dalvik.system.DexFile;
+
public class H2EngineSDK {
- public static HashMap<Integer, ICommand> allCommand = new HashMap();
+ private static HashMap<Integer, ICommand> allCommand = new HashMap<Integer, ICommand>();
- public static void init() {
-
+ /**
+ * 鍒濆鍖栨墍鏈夊懡浠�
+ */
+ public static void initCommandMap() {
+ allCommand.clear();
+ List<String> classesName = getClassName("com.secondworld.universalsdk.command");
+ try {
+ for (String name : classesName) {
+ Class<?> aClass = Class.forName(name);
+ if (!aClass.isInterface())
+ addCommand((ICommand) aClass.newInstance());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
- private static void AddCommand(ICommand command) {
+ public static void addCommand(ICommand command) {
allCommand.put(command.getCode(), command);
}
- //unity 鍙戞潵鐨勬秷鎭�
+ /**
+ * unity 鍙戞潵鐨勬秷鎭�
+ *
+ * @param json
+ */
public static void HandleUnityMessage(String json) {
try {
+ LogUtil.debug("HandleUnityMessage", json);
JSONObject _json = new JSONObject(json);
int code = _json.getInt("code");
ICommand command = allCommand.get(code);
if (command == null) {
+
return;
}
command.process(json);
- } catch (Exception e) {
-
+ } catch (Exception ignored) {
}
}
+ /**
+ * 閫氳繃鍙嶅皠璇诲彇鎸囧畾鍖呭悕涓嬬殑鎵�鏈夌被鍚�
+ *
+ * @param packageName
+ * @return
+ */
+ public static List<String> getClassName(String packageName) {
+ List<String> classNameList = new ArrayList<String>();
+ try {
+ DexFile df = new DexFile(BaseApplication.APP.getPackageCodePath());//閫氳繃DexFile鏌ユ壘褰撳墠鐨凙PK涓彲鎵ц鏂囦欢
+ Enumeration<String> enumeration = df.entries();//鑾峰彇df涓殑鍏冪礌 杩欓噷鍖呭惈浜嗘墍鏈夊彲鎵ц鐨勭被鍚� 璇ョ被鍚嶅寘鍚簡鍖呭悕+绫诲悕鐨勬柟寮�
+ while (enumeration.hasMoreElements()) {//閬嶅巻
+ String className = (String) enumeration.nextElement();
+ if (className.contains(packageName)) {//鍦ㄥ綋鍓嶆墍鏈夊彲鎵ц鐨勭被閲岄潰鏌ユ壘鍖呭惈鏈夎鍖呭悕鐨勬墍鏈夌被
+ classNameList.add(className);
+ }
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return classNameList;
+ }
+
}
--
Gitblit v1.8.0