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