From 644415760aaee442b0b8a38d79ea63e0d32f57d5 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期一, 11 三月 2024 18:04:29 +0800
Subject: [PATCH] 2024年03月11日18:04:19

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java |  136 ++++++++++++++++++++++++++++++++------------
 1 files changed, 98 insertions(+), 38 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
index 6720846..be8f1e0 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -35,10 +35,16 @@
 import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpServer;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.listener.LinkCallBack;
+import com.hdl.photovoltaic.ui.StartActivity;
 import com.hdl.photovoltaic.ui.bean.CloudInverterDeviceBean;
 import com.hdl.photovoltaic.ui.bean.DeviceTimeBean;
 import com.hdl.photovoltaic.ui.bean.Geolocation;
 import com.hdl.photovoltaic.ui.bean.OidBean;
+import com.hdl.photovoltaic.ui.me.AsRegardsActivity;
+import com.hdl.photovoltaic.ui.me.PersonalDataActivity;
+import com.hdl.photovoltaic.ui.me.SetActivity;
+import com.hdl.photovoltaic.ui.newC.MessageCenterList;
+import com.hdl.photovoltaic.ui.newC.PowerStationsListEdit;
 import com.hdl.photovoltaic.uni.HDLUniMP;
 import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
 import com.hdl.photovoltaic.utils.NetworkUtils;
@@ -58,6 +64,8 @@
 
 
 import java.io.File;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -107,7 +115,8 @@
                 return;
             }
             String type = getKeyValue("type", data);//灏忕被
-            String mode_type = "澶х被->" + topic + "--->灏忕被->" + type;//鐢ㄦ潵鎵撳嵃鐨�
+            String mode_type = "澶х被->" + topic + "--->" + "灏忕被->" + type;//鐢ㄦ潵鎵撳嵃鐨�
+            HdlLogLogic.print("uni--->鍙戦��--->" + mode_type + "\r\n" + data, true);
             if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(topic)) {
                 //浣忓畢妯″潡
                 switch (type) {
@@ -313,7 +322,6 @@
 
                 }
             } else if (HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL.equals(topic)) {
-
                 //鍏跺畠妯″潡
                 switch (type) {
                     //鑾峰彇娓╁害鍗曚綅
@@ -336,8 +344,54 @@
                         HdlLogLogic.print("uni--->log--->" + customizeContentFormat, true);
                     }
                 }
+            } else if (HDLUniMP.UNI_EVENT_REPLY_MINE_MODEL.equals(topic)) {
+                //鎴戠殑妯″潡
+                switch (type) {
+                    //璧勬枡缂栬緫
+                    case HDLUniMP.UNI_EVENT_REPLY_MINE_EDIT_USER_INFO: {
+                        Intent intent = new Intent();
+                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                        intent.setClass(HDLApp.getInstance(), PersonalDataActivity.class);
+                        HDLApp.getInstance().startActivity(intent);
+                    }
+                    break;
+                    //鐢电珯閫夋嫨
+                    case HDLUniMP.UNI_EVENT_REPLY_MINE_SELECTED_POWERSTATION: {
+                        Intent intent = new Intent();
+                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                        intent.setClass(HDLApp.getInstance(), PowerStationsListEdit.class);
+                        HDLApp.getInstance().startActivity(intent);
+                    }
+                    break;
+                    //娑堟伅涓績
+                    case HDLUniMP.UNI_EVENT_REPLY_MINE_MESSAGE_CENTER: {
+                        Intent intent = new Intent();
+                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                        intent.setClass(HDLApp.getInstance(), MessageCenterList.class);
+                        HDLApp.getInstance().startActivity(intent);
+                    }
+                    break;
+                    //鍏充簬
+                    case HDLUniMP.UNI_EVENT_REPLY_MINE_ABOUT: {
+                        Intent intent = new Intent();
+                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                        intent.setClass(HDLApp.getInstance(), AsRegardsActivity.class);
+                        HDLApp.getInstance().startActivity(intent);
+                    }
+                    break;
+                    //璁剧疆
+                    case HDLUniMP.UNI_EVENT_REPLY_MINE_SETTING: {
+                        Intent intent = new Intent();
+                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                        intent.setClass(HDLApp.getInstance(), SetActivity.class);
+                        HDLApp.getInstance().startActivity(intent);
+                    }
+                    break;
+
+
+                }
             }
-            HdlLogLogic.print("uni--->鍙戦��--->" + mode_type + "\r\n" + data, true);
+
         } catch (Exception e) {
             HdlLogLogic.print("uni--->鍙戦��--->" + e.getMessage(), true);
         }
@@ -386,42 +440,49 @@
      * 鑾峰彇浣嶇疆淇℃伅,鍖呮嫭缁忕含搴�
      */
     private void uniGetLocationInfo(String type, Object data, DCUniMPJSCallback callback) {
-
-
-        // 鍒濆鍖朙ocationManager瀵硅薄
-        LocationManager locationManager = (LocationManager) HDLApp.getInstance().getSystemService(Context.LOCATION_SERVICE);
-        Geolocation geolocation = new Geolocation();
-        //INTERNET	鍏佽浣跨敤缃戠粶
-        //ACCESS_FINE_LOCATION	鍏佽浣跨敤GPS瀹氫綅
-        //ACCESS_COARSE_LOCATION	鍏佽浣跨敤WIFI鐑偣鎴栧熀绔欐潵鑾峰彇绮楃暐鐨勫畾浣�
-        if (ActivityCompat.checkSelfPermission(HDLApp.getInstance(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(HDLApp.getInstance(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
-            geolocation.setResult(-2);
-            geolocation.setDes(HDLApp.getInstance().getString(R.string.exception_no_location_information_permission));
+        try {
+            // 鍒濆鍖朙ocationManager瀵硅薄
+            LocationManager locationManager = (LocationManager) HDLApp.getInstance().getSystemService(Context.LOCATION_SERVICE);
+            Geolocation geolocation = new Geolocation();
+            //INTERNET	鍏佽浣跨敤缃戠粶
+            //ACCESS_FINE_LOCATION	鍏佽浣跨敤GPS瀹氫綅
+            //ACCESS_COARSE_LOCATION	鍏佽浣跨敤WIFI鐑偣鎴栧熀绔欐潵鑾峰彇绮楃暐鐨勫畾浣�
+            if (ActivityCompat.checkSelfPermission(HDLApp.getInstance(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(HDLApp.getInstance(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+                geolocation.setResult(-2);
+                geolocation.setDes(HDLApp.getInstance().getString(R.string.exception_no_location_information_permission));
+                uniCallbackData(type, geolocation, callback);
+                return;
+            }
+            // 鍒ゆ柇璁惧鏄惁鏀寔瀹氫綅鍔熻兘
+            if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
+                geolocation.setResult(-1);
+                geolocation.setDes(HDLApp.getInstance().getString(R.string.exception_the_location_function_is_not_enabled));
+                //todo 鎻愮ず鐢ㄦ埛鎵撳紑瀹氫綅鍔熻兘鎴栬�呭紩瀵肩敤鎴峰幓绯荤粺璁剧疆椤甸潰鎵撳紑瀹氫綅鍔熻兘
+                uniCallbackData(type, geolocation, callback);
+                return;
+            }
+            Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
+            if (location == null) {
+                geolocation.setResult(-3);
+                geolocation.setDes(HDLApp.getInstance().getString(R.string.exception_unable_location_move10_meters_later));
+                uniCallbackData(type, geolocation, callback);
+                return;
+            }
+            geolocation.setResult(0);
+            geolocation.setDes(HDLApp.getInstance().getString(R.string.succeed));
+            BigDecimal latitude = BigDecimal.valueOf(location.getLatitude());//缁忓害
+            BigDecimal longitude = BigDecimal.valueOf(location.getLongitude());//绾害
+            double lat = latitude.setScale(6, RoundingMode.HALF_DOWN).doubleValue();
+            double lon = longitude.setScale(6, RoundingMode.HALF_DOWN).doubleValue();
+            geolocation.setLatitude(lat);//缁忓害
+            geolocation.setLongitude(lon);//绾害
             uniCallbackData(type, geolocation, callback);
-            return;
-        }
-        // 鍒ゆ柇璁惧鏄惁鏀寔瀹氫綅鍔熻兘
-        if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
-            geolocation.setResult(-1);
-            geolocation.setDes(HDLApp.getInstance().getString(R.string.exception_the_location_function_is_not_enabled));
-            //todo 鎻愮ず鐢ㄦ埛鎵撳紑瀹氫綅鍔熻兘鎴栬�呭紩瀵肩敤鎴峰幓绯荤粺璁剧疆椤甸潰鎵撳紑瀹氫綅鍔熻兘
+        } catch (Exception e) {
+            Geolocation geolocation = new Geolocation();
+            geolocation.setResult(-4);
+            geolocation.setDes(e.getMessage());
             uniCallbackData(type, geolocation, callback);
-            return;
         }
-        Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
-        if (location == null) {
-            geolocation.setResult(-3);
-            geolocation.setDes(HDLApp.getInstance().getString(R.string.exception_the_location_function_is_not_enabled));
-            uniCallbackData(type, geolocation, callback);
-            return;
-        }
-        geolocation.setResult(0);
-        geolocation.setDes(HDLApp.getInstance().getString(R.string.succeed));
-        geolocation.setLongitude(location.getLatitude());//绾害
-        geolocation.setLatitude(location.getLongitude());//缁忓害
-        uniCallbackData(type, geolocation, callback);
-        HdlLogLogic.print("缁忕含搴�--->缁忓害:" + location.getLongitude() + "绾害:" + location.getLatitude(), true);
-
     }
 
     /**
@@ -1362,10 +1423,9 @@
                 callback.invoke(getJSONObject(uniCallBackBaseBean));
 //                callback.invoke(uniCallBackBaseBean);
                 HdlLogLogic.print("uni--->鎺ユ敹--->" + type + "--->" + new Gson().toJson(uniCallBackBaseBean), true);
-
             }
         } catch (Exception e) {
-            HdlLogLogic.print("uni--->鎺ユ敹--->" + type + "--->" + e.getMessage(), false);
+            HdlLogLogic.print("uni--->鎺ユ敹--->" + type + "--->" + e.getMessage(), true);
         }
 
 

--
Gitblit v1.8.0