2016-12-25 24 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; 
    } 

LOCはとにかくnullです。アプリをコンパイルすると、携帯電話でGPSとWi-Fiが有効になります。

答えて

0

SecurityExceptionsを飲み込んでいるとすれば、ネットワークとGPSの場所にそれぞれpermissionACCESS_COARSE_LOCATIONACCESS_FINE_LOCATIONを要求していないと推測しています。

一般に、例外を黙って飲み込むことをおすすめします。これらの特定のSecurityExceptionsは、リソースにアクセスしようとする前にcheckSelfPermission()と呼ばれていたb/cで、catch文を追加する必要はありませんでした。

関連する問題