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