From dc8ae12444d1d887394eb525e2b80dd120dc4c87 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 20 二月 2024 13:43:56 +0800
Subject: [PATCH] Merge branch 'wjc' into dev-hxb

---
 app/src/main/java/com/hdl/photovoltaic/utils/GPSManagerUtils.java |  123 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 123 insertions(+), 0 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/GPSManagerUtils.java b/app/src/main/java/com/hdl/photovoltaic/utils/GPSManagerUtils.java
new file mode 100644
index 0000000..d9b4541
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/utils/GPSManagerUtils.java
@@ -0,0 +1,123 @@
+package com.hdl.photovoltaic.utils;
+
+import android.Manifest;
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.location.Location;
+import android.location.LocationListener;
+import android.location.LocationManager;
+import android.os.Bundle;
+
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.List;
+
+import androidx.annotation.NonNull;
+import androidx.core.app.ActivityCompat;
+
+import com.hdl.photovoltaic.other.HdlLogLogic;
+
+/**
+ * @author : Zoro
+ * @date : 2021/10/16 10:04 AM
+ * @desc :
+ */
+public class GPSManagerUtils {
+    private GPSManagerUtils() {
+    }
+
+    static class Singleton {
+        public static GPSManagerUtils INSTANCE = new GPSManagerUtils();
+    }
+
+    public static GPSManagerUtils getInstance() {
+        return Singleton.INSTANCE;
+    }
+
+    /**
+     * 寮�鍚畾浣�
+     */
+    @SuppressLint("MissingPermission")
+    public void getLocation(Context context) {
+        LocationManager locationManager;
+        String locationProvider;
+        //1.鑾峰彇浣嶇疆绠$悊鍣�
+        locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
+        //2.鑾峰彇浣嶇疆鎻愪緵鍣紝GPS鎴栨槸NetWork
+        List<String> providers = locationManager.getProviders(true);
+//        locationProvider = LocationManager.GPS_PROVIDER;
+        if (providers.contains(LocationManager.GPS_PROVIDER)) {
+            //濡傛灉鏄疓PS瀹氫綅
+            locationProvider = LocationManager.GPS_PROVIDER;
+        } else if (providers.contains(LocationManager.NETWORK_PROVIDER)) {
+            //濡傛灉鏄綉缁滃畾浣�
+            locationProvider = LocationManager.NETWORK_PROVIDER;
+        } else {
+            return;
+        }
+        //楂樼増鏈殑鏉冮檺妫�鏌�
+        if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+            return;
+        }
+        //3.鑾峰彇涓婃鐨勪綅缃紝涓�鑸涓�娆¤繍琛岋紝姝ゅ�间负null
+        @SuppressLint("MissingPermission") Location location = locationManager.getLastKnownLocation(locationProvider);
+        if (location != null) {
+            showLocation(location);
+        } else {
+            // 鐩戣鍦扮悊浣嶇疆鍙樺寲锛岀浜屼釜鍜岀涓変釜鍙傛暟鍒嗗埆涓烘洿鏂扮殑鏈�鐭椂闂磎inTime鍜屾渶鐭窛绂籱inDistace
+            //60绉掓洿鐪佺數
+            locationManager.requestLocationUpdates(locationProvider, 30 * 1000, 10, mListener);
+        }
+    }
+
+    /**
+     * 鑾峰彇瀹氫綅缁忕含搴�
+     *
+     * @param location
+     */
+    private void showLocation(Location location) {
+        if (location != null) {//灏忔暟鐐瑰悗闈�6浣�
+            BigDecimal longitude = BigDecimal.valueOf(location.getLongitude());
+            BigDecimal latitude = BigDecimal.valueOf(location.getLatitude());
+            String lon = longitude.setScale(6, RoundingMode.HALF_DOWN).doubleValue() + "";
+            String lat = latitude.setScale(6, RoundingMode.HALF_DOWN).doubleValue() + "";
+            HdlLogLogic.print("绾害--->" + lon, false);
+            HdlLogLogic.print("缁忓害--->" + lat, false);
+//            if(!TextUtils.isEmpty(lon)&&!TextUtils.isEmpty(lat)){
+//                DataController.getInstance().lonLatUpdate(lon,lat,new IResponseCallBack<String>() {
+//                    @Override
+//                    public void onSuccess(String objects) {
+//                    }
+//
+//                    @Override
+//                    public void onFailure(HttpException error) {
+//                    }
+//                });
+//            }
+        }
+    }
+
+
+    private LocationListener mListener = new LocationListener() {
+        @Override
+        public void onStatusChanged(String provider, int status, Bundle extras) {
+        }
+
+        @Override
+        public void onProviderEnabled(String provider) {
+        }
+
+        @Override
+        public void onProviderDisabled(String provider) {
+        }
+
+        // 濡傛灉浣嶇疆鍙戠敓鍙樺寲锛岄噸鏂版樉绀�
+        @Override
+        public void onLocationChanged(@NonNull Location location) {
+            showLocation(location);
+        }
+    };
+
+}

--
Gitblit v1.8.0