From fdcfe6ef562cc3e8bbd6fcf2faedfbd9571f4490 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期一, 01 四月 2024 14:33:42 +0800
Subject: [PATCH] 解决小程序白屏的问题

---
 app/src/main/java/com/hdl/photovoltaic/HDLApp.java |  189 ++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 154 insertions(+), 35 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
index 9378b04..4b6c7f4 100644
--- a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
+++ b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -1,32 +1,54 @@
 package com.hdl.photovoltaic;
 
 import android.app.Application;
+import android.content.Context;
 import android.content.Intent;
+import android.text.TextUtils;
 
+
+import androidx.multidex.MultiDex;
 
 import com.hdl.hdlhttp.HxHttpConfig;
 import com.hdl.linkpm.sdk.HDLLinkPMSdk;
+import com.hdl.linkpm.sdk.core.exception.HDLException;
+import com.hdl.linkpm.sdk.home.type.HomeType;
 import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
 import com.hdl.linkpm.sdk.user.callback.IOnReloginListener;
 import com.hdl.linkpm.sdk.utils.HDLSDKSPUtils;
+import com.hdl.photovoltaic.bean.MqttInfo;
 import com.hdl.photovoltaic.config.AppConfigManage;
+import com.hdl.photovoltaic.config.ConstantManage;
 import com.hdl.photovoltaic.config.UserConfigManage;
+import com.hdl.photovoltaic.enums.NetworkType;
+import com.hdl.photovoltaic.listener.CloudCallBeak;
+import com.hdl.photovoltaic.other.HdlLogLogic;
+import com.hdl.photovoltaic.other.HdlMessageLogic;
+import com.hdl.photovoltaic.other.HdlMqttLogic;
+import com.hdl.photovoltaic.other.HdlThreadLogic;
 import com.hdl.photovoltaic.ui.HomeLoginActivity;
 import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
 import com.hdl.photovoltaic.utils.AppManagerUtils;
 import com.hdl.photovoltaic.utils.LocalManageUtil;
+import com.hdl.photovoltaic.utils.NetworkUtils;
+import com.hdl.photovoltaic.utils.SharedPreUtils;
+import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
 import com.hdl.sdk.link.HDLLinkLocalSdk;
+import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
 import com.hdl.sdk.link.core.connect.HDLUdpConnect;
 import com.hdl.sdk.link.core.utils.QueueUtils;
 import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
 
-import java.util.HashMap;import java.util.Locale;
+import org.greenrobot.eventbus.EventBus;
+
+import java.util.HashMap;
 import java.util.Objects;
 
+import cn.jpush.android.api.JPushInterface;
 import io.dcloud.common.util.RuningAcitvityUtil;
 import okhttp3.logging.HttpLoggingInterceptor;
 
 public class HDLApp extends Application {
+
     //鎺у埗鎵撳嵃 Debug妯″紡鎵撳嵃
     private Boolean isLogEnabled = true;
     //涓夋柟sdk鍒濆鍖栨爣璇�
@@ -43,11 +65,26 @@
 
     @Override
     public void onCreate() {
-
         super.onCreate();
-        mHDLApp = this;
-        initThirdSDK();
 
+        mHDLApp = this;
+        SharedPreUtils.init(this);
+        getAppLanguage();
+        initThirdSDK();
+//        appLocationInfo();
+    }
+
+    public void getAppLanguage() {
+        String language = UserConfigManage.getInstance().getCurrentAppLanguage();
+        if (TextUtils.isEmpty(language)) {
+            //浠庡唴瀛橀噷闈㈣幏鍙栦笉鍒拌瑷�,鑾峰彇褰撳墠绯荤粺鐨�;
+            String str = getResources().getConfiguration().locale.getCountry();
+            if (str.equals("CN") || str.equals("TW")) {
+                UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.zh);
+            } else {
+                UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.en);
+            }
+        }
     }
 
     public void setInfoMap(String key, String value) {
@@ -72,39 +109,48 @@
         return "";
     }
 
+    public void removeKey(String key) {
+        mInfoMap.remove(key);
+    }
+
     /**
      * 鍒濆鍖栦笁鏂圭浉鍏砈DK
      */
     public void initThirdSDK() {
         // 灏忕▼搴忚繘绋�
-        if (RuningAcitvityUtil.getAppName(getBaseContext()).contains("unimp")) {
+        if (RuningAcitvityUtil.getAppName(getBaseContext()).contains(":")) {
             return;
         }
         if (isInitThirdSDK) {
             return;
         }
         isInitThirdSDK = true;
-
 //        //5.鍒濆鍖朆ugly
 //        CrashReport.initCrashReport(this, Constant.BUGLY_APP_ID, true);
         //6.鍒濆鍖朌CUniMPSDK
         initDCUniMPSDK();
-
+//        this.initUniMqtt();//濡傛灉鏄儴缃插埌/鎵嬫満涓婃寮忎娇鐢紝娉ㄩ噴鎺夎繖琛屼唬鐮佸氨鍙�
 //        //7.鍒濆鍖栬嚜瀹氫箟IconToast
 //        ToastUtils.getInstance().initIconToast(this);
 //        //8.瀵筬astjson杩涜璁剧疆锛岃В鍐砯astjosn杞崲鎴愬瓧绗︿覆鏃堕瀛楁瘝澶у皬鍐欓棶棰�
 //        TypeUtils.compatibleWithFieldName = true;
 //        //9.鍒濆鍖栫綉缁滃伐鍏�
 //        NetWorkUtil.init(this);
-//        //10.鍒濆鍖栨瀬鍏夋帹閫�
-//        initJPush();
+        //鍒濆鍖栨瀬鍏夋帹閫�
+        initJPush();
         initHDLLinkPMSdk();
         HDLLinkLocalSdk.getInstance().init(getInstance());
         initSocket();
         //4.鍒濆鍖朞KHttpLog 鏄惁寮�鍚�
         setOKHttpLogOpen(isLogEnabled);
+//        initMqttClient();
+        //鐩戝惉缃戠粶鐘舵�佸彉鍖�
+        this.networkMonitoring();
+        //鍒濆鍖栨湰鍦癮ssets鏂囦欢澶硅祫婧愭枃浠�
+//        this.initLocalAssetsData();
 
     }
+
 
     /**
      * 鍒濆鍖朒DLLinkPMSdk
@@ -114,13 +160,20 @@
         HDLLinkPMSdk.initWithAppKey(getInstance(), AppConfigManage.getAppKey(), AppConfigManage.getAppSecret(), AppConfigManage.getAPPRegionUrl());
         //2.璁剧疆鎵撳嵃
         HDLLinkPMSdk.setLogEnabled(isLogEnabled);
-        //3.閰嶇疆鎺ュ彛璇锋眰璇█
-        Locale locale = LocalManageUtil.getSystemLocale(this);
-        if (!locale.getLanguage().equals("zh")) {
-            HDLLinkPMSdk.setLanguage("en");
-        } else {
-            HDLLinkPMSdk.setLanguage("cn");
+        if (TextUtils.isEmpty(UserConfigManage.getInstance().getCurrentAppLanguage())) {
+            //榛樿閰嶇疆鎺ュ彛璇锋眰璇█鏄腑鏂�
+            UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.zh);
         }
+        //3.閰嶇疆鎺ュ彛璇锋眰璇█
+        HDLLinkPMSdk.setLanguage(UserConfigManage.getInstance().getCurrentAppLanguage());
+
+//        //3.閰嶇疆鎺ュ彛璇锋眰璇█
+//        Locale locale = LocalManageUtil.getSystemLocale(this);
+//        if (!locale.getLanguage().equals("zh")) {
+//            HDLLinkPMSdk.setLanguage("en");
+//        } else {
+//            HDLLinkPMSdk.setLanguage("zh");
+//        }
 //        HDLLinkPMSdk.setLanguage("en");//寮哄埗浣跨敤鑻辨枃
         //4.鐩戝惉鐧诲嚭澶勭悊
         HDLLinkPMUser.getInstance().setOnReloginListener(new IOnReloginListener() {
@@ -137,18 +190,23 @@
                 UserConfigManage.getInstance().setLoginDateTime(0);
                 UserConfigManage.getInstance().Save();
 
-                //鏂紑mqtt杩炴帴
-                if (MqttRecvClient.getInstance() != null) {
-                    MqttRecvClient.getInstance().stop();
+                //娓呯┖娑堟伅缂撳瓨鏁版嵁
+                HdlMessageLogic.getInstance().clearListMessage();
+                //娓呯┖缂撳瓨鏁版嵁
+                if (mInfoMap != null) {
+                    mInfoMap.clear();
                 }
+//                //鏂紑mqtt杩炴帴
+//                if (MqttRecvClient.getInstance() != null) {
+//                    MqttRecvClient.getInstance().disConnect();
+//                }
                 //鏂紑鎵�鏈塼cp杩炴帴涓旀竻绌鸿繛鎺ョ紦瀛�
                 // TODO: 10/10/23
 //                TcpSocketBoot.stopAllConnectLinkGateway();
-//                    if(null!=HDLUniMPSDKManager.getInstance().getUniMP()){
-//                        LogUtils.d("asdfasdfasdfsdf鎴戣鍒犻櫎鍟�");
-//                        HDLUniMPSDKManager.getInstance().getUniMP().closeUniMP();
-//                    }
-//                    initDCUniMPSDK();
+                if (null != HDLUniMPSDKManager.getInstance().getUniMP()) {
+                    HDLUniMPSDKManager.getInstance().getUniMP().closeUniMP();
+                }
+                initDCUniMPSDK();
                 Intent intent = new Intent(getInstance(), HomeLoginActivity.class);
                 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                 if (type == 1) {
@@ -185,20 +243,81 @@
         }
     }
 
+    /**
+     * 鍒濆鍖栨瀬鍏塖DK
+     */
+    private void initJPush() {
+        JPushInterface.setDebugMode(true);
+        JPushInterface.init(getBaseContext());
+
+    }
+
+    /**
+     * 鐩戝惉缃戠粶鐘舵�佸彉鍖�
+     */
+    private void networkMonitoring() {
+        NetworkUtils.init(getInstance());
+        NetworkUtils.registerNetworkStatusChangedListener(new NetworkUtils.OnNetworkStatusChangedListener() {
+            @Override
+            public void onDisconnected() {
+                BaseEventBus baseEventBus = new BaseEventBus();
+                baseEventBus.setTopic(ConstantManage.network_change_post);
+                baseEventBus.setType(NetworkType.no_network.toString());
+                baseEventBus.setData("褰撳墠鏃犵綉缁滆繛鎺�");
+                EventBus.getDefault().post(baseEventBus);
+            }
+
+            @Override
+            public void onConnected(NetworkUtils.NetworkType networkType) {
+                BaseEventBus mobile_network = new BaseEventBus();
+                mobile_network.setTopic(ConstantManage.network_change_post);
+                mobile_network.setType(networkType.toString());
+                mobile_network.setData("姝e湪浣跨敤2G/3G/4G缃戠粶/wifi");
+                EventBus.getDefault().post(mobile_network);
+            }
+        });
+    }
 
 
+    /**
+     * 璇诲彇鍔犺浇鏈湴閰嶇疆鏂囦欢鏁版嵁
+     */
+    private void initLocalAssetsData() {
+        //鏁版嵁澶氭湁鐐瑰崱,鎵�浠ュ姞浜嗙嚎绋�
+        HdlThreadLogic.runSubThread(new Runnable() {
+            @Override
+            public void run() {
+                //鑾峰彇鍥藉鐪佸競鏁版嵁
+                LocalManageUtil.getLocationInfo(getInstance());
+                //鑾峰彇缁忕含搴�
+                LocalManageUtil.getLongLatInfo(getInstance());
+            }
+        });
 
-//    /**
-//     * 鍒濆鍖杣ni app mqtt
-//     */
-//    private void initUniMqtt() {
-//        try {
-//            Through.getInstance().setUni(false);
-//            //IP 鍦板潃瑕佹牴鎹疄闄呯殑鏇存敼
-//            UniAppMqtt.getInstance().initMqtt(this, "tcp://192.168.3.124:1883", "Android_" + android.os.Build.BRAND + "_" + this.hashCode(), new String[]{"PCToAndroid/#"});
-//        } catch (Exception e) {
-//            LogUtils.e("娴嬭瘯Mqtt杩炴帴鏈嶅姟绔け璐�");
-//        }
-//    }
 
+    }
+
+
+    /**
+     * 鍒濆鍖杣ni app mqtt
+     */
+    private void initUniMqtt() {
+        try {
+            String ip = "10.10.35.79";//NetworkUtils.getIPAddress(this);
+            if (TextUtils.isEmpty(ip)) {
+                return;
+            }
+            //IP 鍦板潃瑕佹牴鎹疄闄呯殑鏇存敼
+            com.hdl.photovoltaic.ui.test.UniAppMqtt.getInstance().initMqtt(this, "tcp://" + ip + ":1883", "Android_" + android.os.Build.BRAND + "_" + this.hashCode(), new String[]{"PCToAndroid/#"});
+            com.hdl.photovoltaic.ui.test.UniAppMqtt.getInstance().setUni(true);
+        } catch (Exception e) {
+            HdlLogLogic.print("娴嬭瘯Mqtt杩炴帴鏈嶅姟绔け璐�--->");
+        }
+    }
+
+    @Override
+    protected void attachBaseContext(Context base) {
+        MultiDex.install(base);
+        super.attachBaseContext(base);
+    }
 }

--
Gitblit v1.8.0