2016-12-25 54 views
0

有與定位的問題...我使用的方法來獲得緯度和經度。但我的Location變量爲null。所以我的座標是0,0。 有人可以幫我嗎? 這裏是代碼:無法找到我的設備

public Location getLocation() { 

     try { 
      locationManager = (LocationManager) mContext 
        .getSystemService(LOCATION_SERVICE); 

      // getting GPS status 
      checkGPS = locationManager 
        .isProviderEnabled(LocationManager.GPS_PROVIDER); 

      // getting network status 
      checkNetwork = locationManager 
        .isProviderEnabled(LocationManager.NETWORK_PROVIDER); 

      if (!checkGPS && !checkNetwork) { 
       Toast.makeText(mContext, R.string.no_service, Toast.LENGTH_SHORT).show(); 
      } else { 
       this.canGetLocation = true; 
       // First get location from Network Provider 
       if (checkNetwork) { 

        try { 
         locationManager.requestLocationUpdates(
           LocationManager.NETWORK_PROVIDER, 
           MIN_TIME_BW_UPDATES, 
           MIN_DISTANCE_CHANGE_FOR_UPDATES, this); 
         if (locationManager != null) { 
          loc = locationManager 
            .getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 

         } 

         if (loc != null) { 
          latitude = loc.getLatitude(); 
          longitude = loc.getLongitude(); 
         } 
        } catch (SecurityException e) { 

        } 
       } 
      } 

      // if GPS Enabled get lat/long using GPS Services 
      if (checkGPS) { 
       if (loc == null) { 
        try { 
         locationManager.requestLocationUpdates(
           LocationManager.GPS_PROVIDER, 
           MIN_TIME_BW_UPDATES, 
           MIN_DISTANCE_CHANGE_FOR_UPDATES, this); 
         if (locationManager != null) { 
          loc = locationManager 
            .getLastKnownLocation(LocationManager.GPS_PROVIDER); 
          if (loc != null) { 
           latitude = loc.getLatitude(); 
           longitude = loc.getLongitude(); 
          } 
         } 
        } catch (SecurityException e) { 

        } 
       } 
      } 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     return loc; 
    } 

祿爲空呢。當我編譯應用程序時,我的手機上啓用了GPS和WiFi。

回答

0

鑑於您正在吞嚥SecurityExceptions,我猜你的應用沒有分別請求網絡和GPS位置所需的permissionACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION

我一般建議不要默默吞嚥異常。這些特殊的SecurityExceptions,你應該從來沒有需要添加一個catch語句爲他們(這是您的線索的東西是錯誤的),B/C,你應該已經在嘗試訪問該資源之前調用checkSelfPermission()