Explorar el Código

1.修改获取gps坐标的方式。

master
wangwanlei hace 11 meses
padre
commit
4498d8cf9b
Se han modificado 1 ficheros con 19 adiciones y 12 borrados
  1. 19
    12
      corelib/src/main/java/com/xhly/corelib/utils/SystemUtil.java

+ 19
- 12
corelib/src/main/java/com/xhly/corelib/utils/SystemUtil.java Ver fichero

@@ -262,30 +262,37 @@ public class SystemUtil {
262 262
     public static Location getLocation(Context context) {
263 263
         Location data = null;
264 264
         try {
265
-            String locationProvider = "";
266 265
             LocationManager systemService = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
266
+                  String bestProvider = "";
267 267
             List<String> providers = systemService.getProviders(true);
268
-            if (providers.contains(LocationManager.GPS_PROVIDER)) {
269
-                locationProvider = LocationManager.GPS_PROVIDER;
268
+          /*  if (providers.contains(LocationManager.GPS_PROVIDER)) {
269
+                bestProvider = LocationManager.GPS_PROVIDER;
270 270
             } else if (providers.contains(LocationManager.NETWORK_PROVIDER)) {
271
-                locationProvider = LocationManager.NETWORK_PROVIDER;
271
+                bestProvider = LocationManager.NETWORK_PROVIDER;
272 272
             } else {
273 273
                 return data;
274
-            }
275
-            Criteria criteria = new Criteria();
274
+            }*/
275
+           /* Criteria criteria = new Criteria();
276 276
             criteria.setAltitudeRequired(false);
277 277
             criteria.setBearingRequired(false);
278 278
             criteria.setAccuracy(Criteria.ACCURACY_FINE);
279 279
             criteria.setCostAllowed(true);
280
-            String bestProvider = systemService.getBestProvider(criteria, true);
280
+             bestProvider = systemService.getBestProvider(criteria, true)
281
+              data = systemService.getLastKnownLocation(bestProvider);
282
+             ;*/
283
+
281 284
             if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED &&
282 285
                     ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
283
-                data = systemService.getLastKnownLocation(bestProvider);
284
-                if (data != null) {
285
-                    LogUtils.d("获得地理位置", "经度" + data.getLongitude() + "|||维度==" + data.getLatitude());
286
-                } else {
287
-                    LogUtils.d("获得地理位置", "没有地址");
286
+                for (String provider : providers) {
287
+                    Location lastKnownLocation = systemService.getLastKnownLocation(provider);
288
+                    if (lastKnownLocation==null){
289
+                        continue;
290
+                    }
291
+                    if (data==null||lastKnownLocation.getAccuracy()<data.getAccuracy()){
292
+                        data=lastKnownLocation;
293
+                    }
288 294
                 }
295
+                return data;
289 296
             }
290 297
         } catch (Exception e) {
291 298
             LogUtils.d("获得地理位置", "失败原因" + e.toString());

Loading…
Cancelar
Guardar