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