From b171f6d0354b418ed5f56fdf5e0d9d9b32fb4254 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 14 六月 2023 13:56:59 +0800
Subject: [PATCH] 2023年06月14日13:56:50

---
 app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java |  408 +++++++++++++++++++++++++++++++
 app/src/main/java/com/hdl/photovoltaic/internet/MqttClient.java    |    5 
 app/libs/uniMPSDK-V2-release.aar                                   |    0 
 app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java           |  217 ++++++++++++++++
 app/src/main/res/values/strings.xml                                |    3 
 app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java   |   25 +
 app/src/main/java/com/hdl/photovoltaic/HDLApp.java                 |   59 ++++
 app/build.gradle                                                   |   15 +
 app/libs/uniapp-v8-release.aar                                     |    0 
 app/src/main/java/com/hdl/photovoltaic/utils/SharedPreUtils.java   |    2 
 10 files changed, 733 insertions(+), 1 deletions(-)

diff --git a/app/build.gradle b/app/build.gradle
index 34b647a..c20652c 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -33,6 +33,8 @@
 
 dependencies {
 
+    implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
+
     implementation 'androidx.appcompat:appcompat:1.3.0'
     implementation 'com.google.android.material:material:1.4.0'
     implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
@@ -47,4 +49,17 @@
     implementation 'com.hdl.hdlhttp:hxhttp:1.0.4'
 
 
+    //********UniSDK蹇呴』娣诲姞鐨勪緷璧� start********
+    implementation "androidx.recyclerview:recyclerview:1.0.0"
+    implementation 'com.alibaba:fastjson:1.2.66'
+    implementation 'com.facebook.fresco:fresco:2.5.0'
+    implementation 'com.facebook.fresco:animated-gif:2.5.0'
+    implementation 'com.facebook.fresco:webpsupport:2.5.0'
+    implementation 'com.facebook.fresco:animated-webp:2.5.0'
+    implementation 'com.github.bumptech.glide:glide:4.9.0'
+    implementation 'com.android.support:multidex:1.0.3'
+    implementation 'androidx.webkit:webkit:1.3.0'
+    //********UniSDK蹇呴』娣诲姞鐨勪緷璧� end********
+
+
 }
\ No newline at end of file
diff --git a/app/libs/uniMPSDK-V2-release.aar b/app/libs/uniMPSDK-V2-release.aar
new file mode 100644
index 0000000..1fcc3cb
--- /dev/null
+++ b/app/libs/uniMPSDK-V2-release.aar
Binary files differ
diff --git a/app/libs/uniapp-v8-release.aar b/app/libs/uniapp-v8-release.aar
new file mode 100644
index 0000000..b4011a8
--- /dev/null
+++ b/app/libs/uniapp-v8-release.aar
Binary files differ
diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
index 9a77268..774c06a 100644
--- a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
+++ b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -3,10 +3,21 @@
 import android.app.Application;
 
 
+import com.hdl.photovoltaic.other.HdlLogLogic;
+import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
+import com.hdl.photovoltaic.utils.SharedPreUtils;
+
 import java.util.HashMap;
 import java.util.Objects;
 
+import io.dcloud.common.util.RuningAcitvityUtil;
+import io.dcloud.feature.sdk.DCSDKInitConfig;
+import io.dcloud.feature.sdk.DCUniMPSDK;
+import io.dcloud.feature.sdk.Interface.IDCUniMPPreInitCallback;
+
 public class HDLApp extends Application {
+    //涓夋柟sdk鍒濆鍖栨爣璇�
+    private Boolean isInitThirdSDK = false;
     //澹版槑涓�涓綋鍓嶅簲鐢ㄧ殑瀹炰緥
     private static HDLApp mHDLApp;
     //澹版槑涓�涓叕鍏辩殑淇℃伅鏄犲皠,鍙綋浣滃叏灞�鍙橀噺浣跨敤;
@@ -45,4 +56,52 @@
         return "";
     }
 
+    /**
+     * 鍒濆鍖栦笁鏂圭浉鍏砈DK
+     */
+    public void initThirdSDK() {
+        // 灏忕▼搴忚繘绋�
+        if (RuningAcitvityUtil.getAppName(getBaseContext()).contains("unimp")) {
+            return;
+        }
+        if (isInitThirdSDK) {
+            return;
+        }
+        isInitThirdSDK = true;
+
+//        //5.鍒濆鍖朆ugly
+//        CrashReport.initCrashReport(this, Constant.BUGLY_APP_ID, true);
+        //6.鍒濆鍖朌CUniMPSDK
+        initDCUniMPSDK();
+//        //7.鍒濆鍖栬嚜瀹氫箟IconToast
+//        ToastUtils.getInstance().initIconToast(this);
+//        //8.瀵筬astjson杩涜璁剧疆锛岃В鍐砯astjosn杞崲鎴愬瓧绗︿覆鏃堕瀛楁瘝澶у皬鍐欓棶棰�
+//        TypeUtils.compatibleWithFieldName = true;
+//        //9.鍒濆鍖栫綉缁滃伐鍏�
+//        NetWorkUtil.init(this);
+//        //10.鍒濆鍖栨瀬鍏夋帹閫�
+//        initJPush();
+    }
+
+    /**
+     * 鍒濆鍖朥niMPSDK 灏忕▼搴廠DK
+     */
+    private void initDCUniMPSDK() {
+        DCSDKInitConfig config = new DCSDKInitConfig.Builder()
+                .setCapsule(false)//璁剧疆鏄惁浣跨敤鑳跺泭鎸夐挳
+                .setEnableBackground(false)//寮�鍚悗鍙拌繍琛�
+                .build();
+        DCUniMPSDK.getInstance().initialize(this, config, new IDCUniMPPreInitCallback() {
+            @Override
+            public void onInitFinished(boolean b) {
+
+                HdlLogLogic.print("unimp", "UniMPSDK 鍒濆鍖栧畬鎴�----" + b);
+            }
+        });
+
+        //鍒濆鍖朥niMPSDKManager
+        HDLUniMPSDKManager.getInstance().init(HDLApp.getInstance());
+
+    }
+
 }
diff --git a/app/src/main/java/com/hdl/photovoltaic/internet/MqttClient.java b/app/src/main/java/com/hdl/photovoltaic/internet/MqttClient.java
new file mode 100644
index 0000000..a24c543
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/internet/MqttClient.java
@@ -0,0 +1,5 @@
+package com.hdl.photovoltaic.internet;
+
+public class MqttClient {
+
+}
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java
index 73fe38b..5217157 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlThreadLogic.java
@@ -61,6 +61,31 @@
 
 
     /**
+     * 鍏ㄥ眬寮瑰嚭妗�,绯荤粺榛樿Toast
+     */
+    public static void toast(final Context context, final String text) {
+        handler.post(new Runnable() {
+            @Override
+            public void run() {
+                Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
+            }
+        });
+    }
+
+    /**
+     * 鍏ㄥ眬寮瑰嚭妗�,绯荤粺榛樿Toast
+     */
+    public static void toast(final Context context, final int resId) {
+        handler.post(new Runnable() {
+            @Override
+            public void run() {
+                Toast.makeText(context, resId, Toast.LENGTH_SHORT).show();
+            }
+        });
+    }
+
+
+    /**
      * @param e             寮傚父淇℃伅绫�
      * @param context       涓婁笅鏂�(涓嶉渶瑕佸脊妗嗗~null)
      * @param showErrorMode 鏄惁鏄剧ず閿欒(涓嶉渶瑕佸~null)
diff --git a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java
new file mode 100644
index 0000000..9090d4e
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java
@@ -0,0 +1,217 @@
+package com.hdl.photovoltaic.uni;
+
+import androidx.annotation.NonNull;
+
+import java.io.Serializable;
+
+/**
+ * Created by jlchen on 12/15/21.
+ * UniMP 鍘熺敓鍜屽皬绋嬪簭浜や簰鐩稿叧閰嶇疆鍙傛暟
+ */
+public class HDLUniMP {
+
+    public final static String UNI_APP_ID = "__UNI__F86DFCD";//璋冭瘯瀹漺gt鍖呭皬绋嬪簭id
+    /*********UniMP wgt id*********/
+//    public final static String UNI_APP_ID = "__UNI__A2E7300";//鍏変紡wgt鍖呭皬绋嬪簭id
+
+    /*********UniMP Event 鍘熺敓鍜屽皬绋嬪簭浜や簰 鑷畾涔夐�氱煡浜嬩欢*********/
+    public final static String UNI_EVENT_uniMPOnClose = "uni_MPOnClose";//鑷畾涔夊皬绋嬪簭鍏抽棴浜嬩欢
+    //get event 灏忕▼搴忓彂閫佸埌鍘熺敓 鍔犲墠缂�:uni_
+    public final static String UNI_EVENT_GetAppParams = "uni_GetAppParams";//鑾峰彇APP搴旂敤淇℃伅
+    public final static String UNI_EVENT_GetFloorDataEvent = "uni_GetFloorDataEvent";//鑾峰彇妤煎眰鎴栬�呮埧灞嬩俊鎭�
+    public final static String UNI_EVENT_SaveFloorDataEvent = "uni_SaveFloorDataEvent";//鏂板缓鎴栬�呯紪杈戞ゼ灞傛垨鑰呮埧闂翠簨浠�
+    public final static String UNI_EVENT_GetRoomDetailsEvent = "uni_GetRoomDetailsEvent";//鑾峰彇鎴块棿璇︽儏锛氱粦瀹氱殑璁惧鍒楄〃
+    public final static String UNI_EVENT_SendLinkBindUid = "uni_SendLinkBindUid";//鍙戦�丩ink鎸囦护缁戝畾鎴块棿
+    public final static String UNI_EVENT_SendLinkDeleteUid = "uni_SendLinkDeleteUid";//鍙戦�丩ink鎸囦护瑙g粦瀹氭埧闂�
+    public final static String UNI_EVENT_SendChangeGWName = "uni_SendChangeGWName";//鍙戦�佺綉鍏冲娉ㄥ悕鏇存敼鎸囦护锛坙ink锛�
+    public final static String UNI_EVENT_SendDisableToONPRO = "uni_SendDisableToONPRO";//onpro绂佺敤鎸囦护锛坙ink锛�
+    public final static String UNI_EVENT_SendIARCCFirmware = "uni_SendIARCCFirmware";//鍙戦�両ARCC涓夋柟鍥轰欢鍒嗙被
+    public final static String UNI_EVENT_SendReadACFirmwareVersion = "uni_SendReadACFirmwareVersion";//鍙戦�佽鍙朓RACC妯″潡鍥轰欢鐗堟湰
+    public final static String UNI_EVENT_SendUpgradeACNotification = "uni_SendUpgradeACNotification";//鍗囩骇IRACC妯″潡閫氱煡
+    public final static String UNI_EVENT_SendUpgrade = "uni_SendUpgrade";//鍙戦�佸崌绾ф寚浠�
+    public final static String UNI_EVENT_SendFinish = "uni_SendFinish";//鍒嗗寘缁撴潫
+    public final static String UNI_EVENT_SendOpenIRACC = "uni_SendOpenIRACC";//鎵撳紑IRACC閫忎紶鏁�
+    public final static String UNI_EVENT_SendControlTestIRACC = "uni_SendControlTestIRACC";//IRACC鎺у埗娴嬭瘯
+    public final static String UNI_EVENT_SendLinkBindRoom = "uni_SendLinkBindRoom";//鍙戦�丩ink鎸囦护缁戝畾鎴块棿
+    public final static String UNI_EVENT_SendLinkRename = "uni_SendLinkRename";//鍙戦�丩ink鎸囦护淇敼澶囨敞
+
+    /**
+     * 鍦烘櫙
+     */
+    public final static String UNI_EVENT_CreateScene = "uni_CreateScene";//鍙戦�丩ink鎸囦护鍒涘缓鍦烘櫙
+    public final static String UNI_EVENT_EditScene = "uni_EditScene";//鍙戦�丩ink鎸囦护缂栬緫鍦烘櫙
+    public final static String UNI_EVENT_GetSceneSid = "uni_GetSceneSid";//鍙戦�丩ink鎸囦护鑾峰彇鍦烘櫙sid
+    public final static String UNI_EVENT_GetSceneDetail = "uni_GetSceneDetail";//鍙戦�丩ink鎸囦护鑾峰彇鍦烘櫙璇︽儏
+    public final static String UNI_EVENT_GetRoomBindSidList = "uni_GetRoomBindSidList";//鍙戦�丩ink鎸囦护鑾峰彇鎴垮眿鍏宠仈鍦烘櫙璁惧琛ㄦ牸
+    public final static String UNI_EVENT_GetFunctionSidList = "uni_GetFunctionSidList";//鍙戦�丩ink鎸囦护鑾峰彇鍥炶矾sid
+    public final static String UNI_EVENT_CONTROLSCENE = "uni_ControlScene";//鎵ц鍦烘櫙
+    public final static String UNI_EVENT_DeleteScene = "uni_DeleteScene";//鍙戦�丩ink鎸囦护鍒犻櫎鍦烘櫙
+    public final static String UNI_EVENT_GatewayVersion = "uni_GatewayVersion";//鑾峰彇缃戝叧鐗堟湰 鐢ㄤ簬鎺у埗寤舵椂鏀寔0.1s
+
+    /**
+     * 鑷姩鍖�
+     */
+    public final static String UNI_EVENT_GetLogicSid = "uni_GetLogicSid";//鍙戦�丩ink鎸囦护鑾峰彇鑷姩鍖杝id
+    public final static String UNI_EVENT_GetSceneList = "uni_GetSceneList";//鍙戦�丩ink鎸囦护鑾峰彇鍦烘櫙鍒楄〃
+    public final static String UNI_EVENT_GetLogicList = "uni_GetLogicList";//鍙戦�丩ink鎸囦护鑾峰彇鑷姩鍖栧垪琛�
+    public final static String UNI_EVENT_CreateLogic = "uni_CreateLogic";//鍙戦�丩ink鎸囦护鍒涘缓鑷姩鍖�  鍒涘缓缂栬緫鍚屼竴涓�
+    public final static String UNI_EVENT_GetLogicDetail = "uni_GetLogicDetail";//鍙戦�丩ink鎸囦护鑾峰彇鑷姩鍖栬鎯�
+
+    /**
+     * 缃戝叧椹卞姩鍗囩骇锛岃澶囧浐浠跺崌绾�
+     */
+    public final static String UNI_EVENT_GetOidList = "uni_GetOidList";//鍙戦�丩ink鎸囦护鑾峰彇浜戠涓奜id鍒楄〃
+    public final static String UNI_EVENT_GetGatewayDrivers = "uni_GetGatewayDrivers";//鍙戦�丩ink缃戝叧椹卞姩鍒楄〃鑾峰彇
+    public final static String UNI_EVENT_GetCloudGatewayDrivers = "uni_GetCloudGatewayDrivers";//鍙戦�丩ink鎸囦护浜戠鐨勯┍鍔ㄥ垎椤靛垪琛�
+    public final static String UNI_EVENT_UpgradeGatewayDriver = "uni_UpgradeGatewayDriver";//鍙戦�丩ink鎸囦护缃戝叧椹卞姩鍗囩骇OTA鍛戒护涓嬪彂
+    public final static String UNI_EVENT_GetDeviceFirmwares = "uni_GetDeviceFirmwares";//鍙戦�丩ink鎸囦护鑾峰彇璁惧鍥轰欢鍒楄〃鑾峰彇
+    public final static String UNI_EVENT_GetCloudDeviceFirmwares = "uni_GetCloudDeviceFirmwares";//鍙戦�丩ink鎸囦护浜戠鐨勮澶囧浐浠跺垎椤靛垪琛�
+    public final static String UNI_EVENT_UpgradeDeviceFirmware = "uni_UpgradeDeviceFirmware";//鍙戦�丩ink璁惧鍥轰欢鍗囩骇OTA鍛戒护涓嬪彂
+    /**
+     * 瀹夐槻
+     */
+    public final static String UNI_EVENT_GetSecuritySid = "uni_GetSecuritySid";//鍙戦�丩ink鎸囦护鑾峰彇瀹夐槻sid
+    public final static String UNI_EVENT_GetSecurityList = "uni_GetSecurityList";//鍙戦�丩ink鎸囦护鑾峰彇瀹夐槻鍒楄〃
+    public final static String UNI_EVENT_CreateSecurity = "uni_CreateSecurity";//鍙戦�丩ink鎸囦护鍒涘缓瀹夐槻  鍒涘缓缂栬緫鍚屼竴涓�
+    public final static String UNI_EVENT_GetSecurityDetail = "uni_GetSecurityDetail";//鍙戦�丩ink鎸囦护鑾峰彇瀹夐槻璇︽儏
+    public final static String UNI_EVENT_DeleteSecurity = "uni_DeleteSecurity";//鍙戦�丩ink鎸囦护鍒犻櫎瀹夐槻
+
+    /**
+     * 妯℃澘
+     */
+    public final static String UNI_EVENT_UpdataTemplateData = "uni_UpdataTemplateData";//鏇存柊妯℃澘鍛戒护鏁版嵁
+
+    public final static String UNI_EVENT_GetLinkOidList = "uni_GetLinkOidList";//鑾峰彇LinkOid鍒楄〃
+    public final static String UNI_EVENT_GetRoomBindList = "uni_GetRoomBindList";//鑾峰彇RoomBind鍒楄〃
+    public final static String UNI_EVENT_GetDeviceLoopList = "uni_GetDeviceLoopList";//鑾峰彇DeviceLoop鍒楄〃
+    public final static String UNI_EVENT_GetLinkFunctionList = "uni_GetLinkFunctionList";//鑾峰彇LinkFunction鍒楄〃
+    public final static String UNI_EVENT_GetLinkSceneList = "uni_GetLinkSceneList";//鑾峰彇LinkScene鍒楄〃
+    public final static String UNI_EVENT_GetDeviceList = "uni_GetDeviceList";//鑾峰彇Device鍒楄〃
+    public final static String UNI_EVENT_GetRoomList = "uni_GetRoomList";//鍙戦�丩ink鎸囦护鑾峰彇鎴垮眿鍒楄〃
+
+
+    public final static String UNI_EVENT_GetZigBeeDeviceInfo = "uni_GetZigBeeDeviceInfo";//鑾峰彇ZigBee璁惧淇℃伅
+    public final static String UNI_EVENT_GetAllDataSize = "uni_GetAllDataSize";//鑾峰彇鏁版嵁闀垮害
+    public final static String UNI_EVENT_GetMillimeterDeviceInfo = "uni_GetMillimeterDeviceInfo";//鑾峰彇姣背娉㈣澶囦俊鎭�
+    public final static String UNI_EVENT_SetMillimeterConfiguration = "uni_SetMillimeterConfiguration";//閰嶇疆姣背娉㈡暟鎹�
+    public final static String UNI_EVENT_GetMillimeterConfiguration = "uni_GetMillimeterConfiguration";//鑾峰彇姣背娉㈤厤缃暟鎹�
+    public final static String UNI_EVENT_MillimeterPositioning = "uni_MillimeterPositioning";//姣背娉㈠畾浣�
+    public final static String UNI_EVENT_EditMillimeter = "uni_EditMillimeter";//缂栬緫姣背娉�
+    public final static String UNI_EVENT_DeleteMillimeterDevice = "uni_DeleteMillimeterDevice";//鍒犻櫎姣背娉㈣澶�
+    public final static String UNI_EVENT_GetFunctionInfo = "uni_GetFunctionInfo";//鑾峰彇link璁惧璇︽儏
+    public final static String UNI_EVENT_GetLinkRoom = "uni_GetLinkRoom";//鑾峰彇link鎴块棿鍒楄〃
+    public final static String UNI_EVENT_LinkPropertyToCloudControl = "uni_LinkPropertyToCloudControl";//link鎺у埗
+    public final static String UNI_EVENT_LinkPropertyToGatewayControl = "uni_LinkPropertyToGatewayControl";//link鎺у埗
+    public final static String UNI_EVENT_LinkDeviceNameEdit = "uni_LinkDeviceNameEdit";//鑾峰彇link鎺у埗
+    public final static String UNI_EVENT_ChangeDeviceImgVersion = "uni_ChangeDeviceImgVersion";//鏇存敼璁惧鐨勫浐浠剁増鏈�
+
+
+    /**
+     * 绾㈠瀹�
+     */
+    public final static String UNI_EVENT_GetIrTypeList = "uni_GetIrTypeList";//鑾峰彇绾㈠璁惧绫诲瀷
+    public final static String UNI_EVENT_GetIrBrandList = "uni_GetIrBrandList";//鑾峰彇绾㈠璁惧瀵瑰簲鍝佺墝
+    public final static String UNI_EVENT_GetIrCodeList = "uni_GetIrCodeList";//鑾峰彇绾㈠璁惧瀵瑰簲鍝佺墝鐨勫叿浣撶爜搴�
+    public final static String UNI_EVENT_IrLocation = "uni_IrLocation";//绾㈠瀹濆畾浣�
+    public final static String UNI_EVENT_IrControlDelete = "uni_IrControlDelete";//绾㈠瀹濋仴鎺у櫒鍒犻櫎
+    public final static String UNI_EVENT_GetIrInfo = "uni_GetIrInfo";//鑾峰彇绾㈠璁惧link灞傛暟鎹�
+    public final static String UNI_EVENT_IrCodeTest = "uni_IrCodeTest";//绾㈠瀹濊瘯鐮�
+    public final static String UNI_EVENT_IrDeviceAdd = "uni_IrDeviceAdd";//绾㈠瀹濋仴鎺у櫒娣诲姞
+    public final static String UNI_EVENT_IrDeviceAddGetSid = "uni_IrDeviceAddGetSid";//绾㈠瀹濋仴鎺у櫒sid
+    public final static String UNI_EVENT_IrCodeStudy = "uni_IrCodeStudy";//绾㈠瀹濊嚜瀛︾爜
+    public final static String UNI_EVENT_IrCodeRemove = "uni_IrCodeRemove";//绾㈠瀹濊嚜瀛︾爜鍒犻櫎
+    public final static String UNI_EVENT_LinkDeviceControl = "uni_LinkDeviceControl";//link璁惧鎺у埗
+    public final static String UNI_EVENT_LinkOtaDeviceUpgradeDown = "uni_LinkOtaDeviceUpgradeDown";//link妯℃嫙浜戠ota
+
+
+    public final static String UNI_EVENT_IrDeviceListGet = "uni_IrDeviceListGet";//绾㈠瀹濋仴鎺у櫒鍒楄〃鑾峰彇
+
+    public final static String UNI_EVENT_GetGateWayDeviceInfo = "uni_GetGateWayDeviceInfo";//鑾峰彇缃戝叧璁惧淇℃伅
+    public final static String UNI_EVENT_SendZigBeePassthrough = "uni_SendZigBeePassthrough";//鍙戦�乑igBee閫忎紶鎸囦护
+    /**
+     * Zigbee閫忎紶鏁版嵁鍏ㄥ眬鍥炲
+     */
+    public final static String UNI_EVENT_ZigBeePassthrough = "uni_ZigBeePassthrough";
+    /**
+     * Zigbee鐘舵�佹暟鎹�忎紶
+     */
+    public final static String EVENT_DeviceStatusReportPassthrough = "DeviceStatusReportPassthrough";
+
+    //send event 鍘熺敓鍙戦�佸埌灏忕▼搴� 鍔犲墠缂�:app_
+//    public final static String UNI_APP_EVENT_UIDataEvent = "app_GetFloorDataEvent";//鍘熺敓閫氱煡灏忕▼搴� 鑾峰彇妤煎眰鎴栬�呮埧灞嬩俊鎭�
+
+    /*********UniMP PATH 鍚勪釜灏忕▼搴忛〉闈㈣矾寰�*********/
+    //鍚姩鐩磋揪椤甸潰鏍囪瘑鍙傛暟 锛堝簾寮冿級
+    public final static String UNI_ACTION = "?action=redirect";
+    //UniMP灏忕▼搴� 鎬昏矾鐢遍〉闈� 鍚庨潰閫氳繃pathKey鍐嶅垎鍙戣矾鐢辫烦杞�佸皬绋嬪簭甯垜浠嫾鎺�?action=redirect
+    public final static String UNI_PATH_MAIN = "pages/index/index?pathKey=";
+    //娣诲姞妤煎眰鎴栬�呮埧闂�
+    public final static String UNI_PATH_AddFloor = UNI_PATH_MAIN + "room";
+    //鏌ョ湅鎴块棿璇︽儏
+    public final static String UNI_PATH_RoomDetails = UNI_PATH_MAIN + "roomDetails";
+    //鏌ョ湅缃戝叧淇℃伅
+    public final static String UNI_PATH_GATEWAY = UNI_PATH_MAIN + "gateway";
+    //鏌ョ湅姣背娉俊鎭�
+    public final static String UNI_PATH_MILLIMETER = UNI_PATH_MAIN + "Millimeter";
+    //鏌ョ湅璁惧閫氱敤淇℃伅
+    public final static String UNI_PATH_DEVICE = UNI_PATH_MAIN + "device_info";
+
+    //Link鏁版嵁鍏ㄥ眬鍥炲
+    public final static String UNI_EVENT_LinkPassthrough = "LinkPassthrough";
+    //鍏抽棴杩涘害鏉$洃鍚簨浠�
+    public final static String UNI_EVENT_Progress = "uni_CloseProgress";
+    //鏌ョ湅鍚搁《寮忎紶鎰熷櫒璁惧淇℃伅
+    public final static String UNI_PATH_CEILINGLIGHTSENSOR = UNI_PATH_MAIN + "ceilingLightSensor";
+
+
+    public static class UniCallBackBaseBean implements Serializable {
+        private String code = "-1";
+        private String mes;
+        private Object data;
+        private String topic;
+
+        public UniCallBackBaseBean(String code, String mes) {
+            this.code = code;
+            this.mes = mes;
+        }
+
+        public UniCallBackBaseBean() {
+            this.code = "0";
+            this.mes = "鎴愬姛";
+        }
+
+        @NonNull
+        public String getCode() {
+            return code == null ? "" : code;
+        }
+
+        public void setCode(@NonNull String code) {
+            this.code = code;
+        }
+
+        @NonNull
+        public String getMes() {
+            return mes == null ? "" : mes;
+        }
+
+        public void setMes(@NonNull String mes) {
+            this.mes = mes;
+        }
+
+        public Object getData() {
+            return data;
+        }
+
+        public void setData(Object data) {
+            this.data = data;
+        }
+
+        public String getTopic() {
+            return topic;
+        }
+
+        public void setTopic(String topic) {
+            this.topic = topic;
+        }
+    }
+}
diff --git a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
new file mode 100644
index 0000000..4f13a8a
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
@@ -0,0 +1,408 @@
+package com.hdl.photovoltaic.uni;
+
+import android.app.Application;
+import android.content.Context;
+import android.os.Environment;
+import android.text.TextUtils;
+
+
+import com.google.gson.Gson;
+import com.hdl.photovoltaic.HDLApp;
+import com.hdl.photovoltaic.R;
+import com.hdl.photovoltaic.config.AppConfigManage;
+import com.hdl.photovoltaic.other.HdlLogLogic;
+import com.hdl.photovoltaic.other.HdlThreadLogic;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.File;
+import java.util.HashMap;
+
+import io.dcloud.common.DHInterface.ICallBack;
+import io.dcloud.feature.sdk.DCSDKInitConfig;
+import io.dcloud.feature.sdk.DCUniMPSDK;
+import io.dcloud.feature.sdk.Interface.IDCUniMPPreInitCallback;
+import io.dcloud.feature.sdk.Interface.IOnUniMPEventCallBack;
+import io.dcloud.feature.sdk.Interface.IUniMP;
+import io.dcloud.feature.sdk.Interface.IUniMPOnCloseCallBack;
+import io.dcloud.feature.unimp.DCUniMPJSCallback;
+
+/**
+ * Created by jlchen on 12/15/21.
+ */
+public class HDLUniMPSDKManager {
+    private static final String TAG = "HDLUniMPSDKManager";
+    /**
+     * context
+     */
+    private Application mContext;
+    private IUniMP uniMP;
+    /**
+     * unimp灏忕▼搴忓疄渚嬬紦瀛�
+     **/
+    HashMap<String, IUniMP> mUniMPCaches = new HashMap<>();
+    /**
+     * 褰撳墠鎵撳紑鐨勫皬绋嬪簭APPId
+     */
+    private String mCurrentAppId;
+    /**
+     * instance
+     */
+    private volatile static HDLUniMPSDKManager instance;
+
+    /**
+     * 鑾峰彇褰撳墠瀵硅薄
+     *
+     * @return HDLUniMPSDKManager
+     */
+    public static synchronized HDLUniMPSDKManager getInstance() {
+        if (instance == null) {
+            synchronized (HDLUniMPSDKManager.class) {
+                if (instance == null) {
+                    instance = new HDLUniMPSDKManager();
+                }
+            }
+        }
+        return instance;
+    }
+
+    /**
+     * 鍙嶅垵濮嬪寲
+     */
+    public void unInit() {
+        mUniMPCaches.clear();
+        this.mContext = null;
+    }
+
+    /**
+     * 鍒濆鍖�
+     *
+     * @param ctx -
+     */
+    public void init(Application ctx) {
+        this.mContext = ctx;
+        registerCallBack();
+    }
+
+    /**
+     * 绉婚櫎鐩稿叧鍥炶皟鐩戝惉
+     */
+    private void removeCallBack() {
+        DCUniMPSDK.getInstance().setUniMPOnCloseCallBack(null);
+        DCUniMPSDK.getInstance().setOnUniMPEventCallBack(null);
+    }
+
+    /**
+     * 鐩戝惉鐩稿叧鍥炶皟
+     */
+    private void registerCallBack() {
+        //1.璁剧疆灏忕▼搴忚鍏抽棴浜嬩欢鐩戝惉
+        DCUniMPSDK.getInstance().setUniMPOnCloseCallBack(new IUniMPOnCloseCallBack() {
+            @Override
+            public void onClose(String appid) {
+                if (AppConfigManage.isDebug()) {
+                    HdlLogLogic.print(TAG, "鏀跺埌灏忕▼搴忛�氱煡  琚叧闂簡");
+                }
+                //灏忕▼搴忚鍏抽棴闇�瑕佸瀹炰緥缂撳瓨鍒犻櫎鎿嶄綔
+                if (mUniMPCaches.containsKey(appid)) {
+                    mUniMPCaches.remove(appid);
+                }
+                //娓呯┖褰撳墠鎵撳紑灏忕▼搴忚褰�
+                if (appid.equals(mCurrentAppId)) {
+                    mCurrentAppId = "";
+                }
+            }
+        });
+
+        //2.璁剧疆鐩戝惉灏忕▼搴忓彂閫佺粰瀹夸富鐨勪簨浠�
+        DCUniMPSDK.getInstance().setOnUniMPEventCallBack(new IOnUniMPEventCallBack() {
+            @Override
+            public void onUniMPEventReceive(String appid, String event, Object data, DCUniMPJSCallback callback) {
+//                handelUniMPEventReceive(appid, event, data, callback);
+                HdlLogLogic.print(TAG, "鏀跺埌灏忕▼搴忛�氱煡    event=" + event);
+                //鏆傛椂閫氳繃杩欎釜澶勭悊灏忕▼搴忓悓鏃跺鏉$浉鍚岀殑璇锋眰
+                if (data == null) {
+                    return;
+                }
+//                String key= MD5Utils.getMd5(event+data.toString());
+//                if(UniAppMessageCacheUtil.getInstance().isExist(key))
+//                {
+//                    LogUtils.i("褰撳墠灏忕▼搴忔暟鎹煭鏃堕棿鍙戦�佷簡澶氭");
+//                    return;
+//                }
+//                UniAppMessageCacheUtil.getInstance().put(key,System.currentTimeMillis());
+
+                //鍙鐞嗕竴涓嬬粺涓�澶勭悊鐨勪簨浠�
+                if (HDLUniMP.UNI_EVENT_GetAppParams.equals(event)) {
+                    //鍥炰紶鏁版嵁缁欏皬绋嬪簭
+                    JSONObject params = getAppParams();
+                    callback.invoke(params);
+                    HdlLogLogic.print(TAG, "uni_GetAppParams callback:" + params.toString());
+                } else {
+                    //闄や簡缁熶竴澶勭悊锛屽墿浣欏叾瀹冪壒瀹氬満鏅殑浜嬩欢閫氱煡
+                    if (onOtherUniMPEventCallBack != null) {
+                        onOtherUniMPEventCallBack.onOtherUniMPEventReceive(appid, event, data, callback);
+                    }
+                }
+            }
+        });
+    }
+
+    /**
+     * 灏忕▼搴忓悜APP鑾峰彇鎵�闇�鐨勯厤缃弬鏁�
+     *
+     * @return -
+     */
+    private JSONObject getAppParams() {
+        JSONObject mParams = new JSONObject();
+        try {
+            //鍥炶皟鍛婅瘔灏忕▼搴忚浣跨敤鐨勮瑷�
+            mParams.put("language", "zh-Hans");
+//            mParams.put("language", "en");//鍥炶皟鍛婅瘔灏忕▼搴忚浣跨敤鐨勮瑷�
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+        return mParams;
+    }
+
+
+    /**
+     * 灏忕▼搴忔槸鍚﹀垵濮嬪寲瀹屾垚
+     * 鍚姩uni灏忕▼搴忥紝纭繚宸插垵濮嬪寲瀹屾瘯鍐嶈皟鐢�
+     *
+     * @return -
+     */
+    public Boolean isInitialize() {
+        return DCUniMPSDK.getInstance().isInitialize();
+    }
+
+
+    /**
+     * 妫�鏌ユ槸鍚﹀瓨鍦ㄥ簲鐢ㄨ祫婧愶紝涓嶅瓨鍦ㄥ垯閮ㄧ讲
+     *
+     * @param uniAppId -
+     */
+    public void checkUniMPResource(String uniAppId) {
+        //2.涓嶆槸绗竴娆″惎鍔ㄤ簡锛屽厛鍒ゆ柇wgt鍖呬箣鍓嶆湁涔堟湁閮ㄧ讲杩�
+        if (!DCUniMPSDK.getInstance().isExistsApp(uniAppId)) {
+            HdlLogLogic.print(TAG, "DCUni wgt涔嬪墠杩樻病閮ㄧ讲杩�");
+            //涔嬪墠娌¢儴缃茶繃閲嶆柊閮ㄧ讲
+            hdlReleaseAppResourceToRunPathWithAppid(uniAppId);
+//            [self hdlReleaseAppResourceToRunPathWithAppid:uniAppId];
+        } else {
+            HdlLogLogic.print(TAG, "DCUni wgt宸茬粡閮ㄧ讲杩�");
+        }
+    }
+
+    /**
+     * 灏唚gt搴旂敤璧勬簮鍖呴儴缃插埌杩愯璺緞涓�
+     *
+     * @param uniAppId -
+     */
+    public void hdlReleaseAppResourceToRunPathWithAppid(String uniAppId) {
+        String wgtPath = mContext.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + "/" + uniAppId + ".wgt";
+        boolean b = fileIsExists(wgtPath);
+        if (b) {
+            HdlLogLogic.print(TAG, "wgt鍖呮湰鍦板瓨鍦�");
+            DCUniMPSDK.getInstance().releaseWgtToRunPathFromePath(uniAppId, wgtPath, new ICallBack() {
+                @Override
+                public Object onCallBack(int code, Object pArgs) {
+                    if (code == 1) {
+                        //閲婃斁wgt瀹屾垚
+
+                    } else {
+                        //閲婃斁wgt澶辫触
+                        HdlLogLogic.print(TAG, "璧勬簮閲婃斁澶辫触");
+                    }
+                    return null;
+                }
+            });
+        } else {
+            HdlLogLogic.print(TAG, "wgt鍖呮湰鍦颁笉瀛樺湪");
+        }
+    }
+
+    /**
+     * 鍒ゆ柇鏂囦欢鏄惁瀛樺湪
+     *
+     * @param strFile -
+     * @return -
+     */
+    public static boolean fileIsExists(String strFile) {
+        try {
+            File f = new File(strFile);
+            if (!f.exists()) {
+                return false;
+            }
+
+        } catch (Exception e) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 鎵撳紑灏忕▼搴�
+     *
+     * @param uniAppId 灏忕▼搴廔D
+     * @param path     鎸囧畾璺緞
+     *                 渚嬶細pages/component/scroll-view/scroll-view?a=1&b=2&c=3
+     * @param callBack 鐩戝惉灏忕▼搴廜therUniMPEvent浜嬩欢
+     */
+    public void openUniMP(String uniAppId, String path, IOnOtherUniMPEventCallBack callBack) {
+        if (TextUtils.isEmpty(uniAppId)) {
+            HdlThreadLogic.toast(mContext, "uni Id null");
+            HdlLogLogic.print(TAG, "灏忕▼搴廔D 涓嶈兘涓虹┖");
+            return;
+        }
+        try {
+            setOnOtherUniMPEventCallBack(callBack);
+            uniMP = null;
+            if (TextUtils.isEmpty(path)) {
+                uniMP = DCUniMPSDK.getInstance().openUniMP(mContext, uniAppId);
+            } else {
+//                UniMPOpenConfiguration uniMPOpenConfiguration = new UniMPOpenConfiguration();
+//                uniMPOpenConfiguration.path = path;
+                uniMP = DCUniMPSDK.getInstance().openUniMP(mContext, uniAppId, path);
+            }
+            mCurrentAppId = uniAppId;//璁板綍褰撳墠灏忕▼搴�
+            mUniMPCaches.put(uniMP.getAppid(), uniMP);
+        } catch (Exception e) {
+            e.printStackTrace();
+            HdlThreadLogic.toast(HDLApp.getInstance(), R.string.uni_open_error);
+            initDCUniMPSDK(HDLApp.getInstance());
+            HdlLogLogic.print(TAG, "鎵撳紑澶辫触" + e.getMessage());
+        }
+    }
+
+    /**
+     * 鍒濆鍖朥niMPSDK 灏忕▼搴廠DK
+     */
+    public void initDCUniMPSDK(Context mContext) {
+        if (DCUniMPSDK.getInstance().isInitialize()) {
+            return;
+        }
+        DCSDKInitConfig config = new DCSDKInitConfig.Builder()
+                .setCapsule(false)//璁剧疆鏄惁浣跨敤鑳跺泭鎸夐挳
+                .setEnableBackground(false)//寮�鍚悗鍙拌繍琛�
+                .build();
+        DCUniMPSDK.getInstance().initialize(mContext, config, new IDCUniMPPreInitCallback() {
+            @Override
+            public void onInitFinished(boolean b) {
+
+                HdlLogLogic.print("unimp", "UniMPSDK 鍒濆鍖栧畬鎴�----" + b);
+            }
+        });
+
+        //鍒濆鍖朥niMPSDKManager
+        HDLUniMPSDKManager.getInstance().init(HDLApp.getInstance());
+
+    }
+
+    public IUniMP getUniMP() {
+        return uniMP;
+    }
+
+    /**
+     * 鎵撳紑灏忕▼搴忓苟浼犲叆鍙傛暟
+     *
+     * @param uniAppId  灏忕▼搴廔D
+     * @param arguments JSONObject arguments = new JSONObject();
+     *                  arguments.put("MSG","Hello HDL");
+     * @param callBack  鐩戝惉灏忕▼搴廜therUniMPEvent浜嬩欢
+     */
+    public void openUniMP(String uniAppId, JSONObject arguments, IOnOtherUniMPEventCallBack callBack) {
+        if (TextUtils.isEmpty(uniAppId)) {
+            HdlLogLogic.print(TAG, "灏忕▼搴廔D 涓嶈兘涓虹┖");
+            return;
+        }
+        try {
+            setOnOtherUniMPEventCallBack(callBack);
+//            UniMPOpenConfiguration uniMPOpenConfiguration = new UniMPOpenConfiguration();
+//            uniMPOpenConfiguration.extraData = arguments;
+            uniMP = DCUniMPSDK.getInstance().openUniMP(mContext, uniAppId, arguments);
+            mCurrentAppId = uniAppId;//璁板綍褰撳墠灏忕▼搴�
+            mUniMPCaches.put(uniMP.getAppid(), uniMP);
+        } catch (Exception e) {
+            e.printStackTrace();
+            HdlLogLogic.print(TAG, "鎵撳紑澶辫触" + e.getMessage());
+        }
+    }
+
+    /**
+     * 鍘熺敓鍚戝皬绋嬪簭鍙戦�侀�氱煡浜嬩欢
+     * 娉ㄦ剰锛氶渶瑕佹彁鍓嶅皬绋嬪簭鍦ㄨ繍琛屾墠鍙垚鍔�
+     *
+     * @param uniAppId 灏忕▼搴忔寚瀹�
+     * @param event    灏忕▼搴忔寚瀹氫富棰�
+     * @param data     String鎴朖SON
+     */
+    public void sendUniMPEvent(String uniAppId, String event, Object data) {
+
+        if (mUniMPCaches.containsKey(uniAppId)) {
+            if (mUniMPCaches.get(uniAppId) != null) {
+                mUniMPCaches.get(uniAppId).sendUniMPEvent(event, data);
+                HdlLogLogic.print(TAG, "鍙戦�侀�氱煡鎴愬姛锛歟vent锛�" + event + " data锛�" + new Gson().toJson(data));
+            } else {
+                HdlLogLogic.print(TAG, "鍙戦�佸け璐ワ紝灏忕▼搴忓璞′负绌猴細" + uniAppId);
+            }
+        } else {
+            HdlLogLogic.print(TAG, "鍙戦�佸け璐ワ紝鎵句笉鍒板搴旂殑灏忕▼搴忥細" + uniAppId);
+        }
+
+    }
+
+    /**
+     * 鍘熺敓鍚戝綋鍓嶆墦寮�鐨勫皬绋嬪簭鍙戦�侀�氱煡浜嬩欢
+     * 娉ㄦ剰锛氶渶瑕佹彁鍓嶅皬绋嬪簭鍦ㄨ繍琛屾墠鍙垚鍔�
+     *
+     * @param event -
+     * @param data  String鎴朖SON
+     */
+    public void sendUniMPEventToCurrentOpenAppId(String event, Object data) {
+        if (TextUtils.isEmpty(mCurrentAppId)) {
+            HdlLogLogic.print(TAG, "褰撳墠娌℃墦寮�鐨勫皬绋嬪簭");
+            return;
+        }
+        sendUniMPEvent(mCurrentAppId, event, data);
+    }
+
+    /**
+     * 闄や簡鍏叡澶勭悊鐨勫叾浠朎vent
+     */
+    private IOnOtherUniMPEventCallBack onOtherUniMPEventCallBack;
+
+    /**
+     * IOnOtherUniMPEventCallBack
+     */
+    public interface IOnOtherUniMPEventCallBack {
+        /**
+         * 闄や簡缁熶竴澶勭悊锛屽墿浣欏叾瀹冪壒瀹氬満鏅殑浜嬩欢閫氱煡
+         *
+         * @param appid    -
+         * @param event    -
+         * @param data     JSONObject com.alibaba.fastjson瑙f瀽澶勭悊
+         * @param callback callback.invoke(JSONObject) 鐢╟om.alibaba.fastjson
+         */
+        void onOtherUniMPEventReceive(String appid, String event, Object data, DCUniMPJSCallback callback);
+    }
+
+    public void setOnOtherUniMPEventCallBack(IOnOtherUniMPEventCallBack onOtherUniMPEventCallBack) {
+        this.onOtherUniMPEventCallBack = onOtherUniMPEventCallBack;
+        HdlLogLogic.print("onOtherUniMPEventCallBack", "set callback");
+    }
+
+    /**
+     * 妫�娴嬫槸鍚﹀綋鍓嶉〉闈㈡敞鍐岀殑callback,鏄殑璇濆垯绉婚櫎
+     *
+     * @param onOtherUniMPEventCallBack -
+     */
+    public void checkRemoveOtherUniMPEventCallBack(IOnOtherUniMPEventCallBack onOtherUniMPEventCallBack) {
+        if (this.onOtherUniMPEventCallBack == onOtherUniMPEventCallBack) {
+            this.onOtherUniMPEventCallBack = null;
+            HdlLogLogic.print("onOtherUniMPEventCallBack", "remove callback");
+        }
+    }
+
+}
diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/SharedPreUtils.java b/app/src/main/java/com/hdl/photovoltaic/utils/SharedPreUtils.java
index dcf31bc..64522b8 100644
--- a/app/src/main/java/com/hdl/photovoltaic/utils/SharedPreUtils.java
+++ b/app/src/main/java/com/hdl/photovoltaic/utils/SharedPreUtils.java
@@ -33,7 +33,7 @@
      * @param context 涓婁笅鏂�
      * @return -value
      */
-    public String getSharedPreferencesKey(String key, Context context) {
+    public static String getSharedPreferencesKey(String key, Context context) {
         // 鑾峰彇SharedPreferences瀵硅薄锛屽悓鏃舵寚瀹氭枃浠跺悕绉板拰璁块棶鏉冮檺
         SharedPreferences sp = context.getSharedPreferences("MyData", Context.MODE_PRIVATE);
         return sp.getString(key, "");
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f78ebd0..d81d43a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -54,6 +54,9 @@
     <string name="me_璁剧疆">璁剧疆</string>
     <string name="me_鍏充簬">鍏充簬</string>
 
+    <!--uin-->
+    <string name="uni_open_error">椤甸潰鍒濆鍖栦腑 璇风瓑寰�5绉掑啀鐐瑰嚮</string>
+
     <!--寮规-->
     <string name="loading_鍙栨秷">鍙栨秷</string>
     <string name="loading_纭">纭</string>

--
Gitblit v1.8.0