From 7c2dce60eeb3b3b54c52890ece8aa472d5512a04 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期一, 11 三月 2024 16:03:49 +0800
Subject: [PATCH] 2024年03月11日16:03:42

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java |   83 +++++++++++++++++++++++------------------
 1 files changed, 46 insertions(+), 37 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..0c8f79a 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -58,6 +58,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 +109,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) {
@@ -337,7 +340,7 @@
                     }
                 }
             }
-            HdlLogLogic.print("uni--->鍙戦��--->" + mode_type + "\r\n" + data, true);
+
         } catch (Exception e) {
             HdlLogLogic.print("uni--->鍙戦��--->" + e.getMessage(), true);
         }
@@ -386,42 +389,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 +1372,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