0

経度と緯度を取得したい場所でこのコードを実行しましたが、ネットワークプロバイダーと gps プロバイダーの両方を使用して自分の場所を取得します null 。GPSが有効になっている場合でも...なぜそうですか?

      boolean isGPSEnabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
      boolean  isNetworkEnabled = lm
                .isProviderEnabled(LocationManager.NETWORK_PROVIDER);
        Location location = null;
        if (!isGPSEnabled && !isNetworkEnabled)
        {  
        }
        else if(isGPSEnabled ) {
            location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
            if(location == null)
            {                   
                if(isNetworkEnabled)
                    location =                                   lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);                 
                if(location == null)
                {
                }
            }
        } else if(isNetworkEnabled){
            location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);   
            if(location == null)
            {
            }
        }
4

1 に答える 1

0

座標を取得できない理由はいくつかありますが、あなたの場合gpsは、有効になっているため ( remember gps takes alot of time to get coordinates)、コードで最初に gps をチェックしているnetworkため、if else.so を使用しているため、コードを次のように変更します。このように、最初にネットワークを確認してください。

if (!isGPSEnabled && !isNetworkEnabled)
        {  
        }
      else if(isNetworkEnabled){
            location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);   
            if(location == null)
            {
            }
        }
        else if(isGPSEnabled ) {
            location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
            if(location == null)
            {                   
                if(isNetworkEnabled)
                    location = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);                 
                if(location == null)
                {
                }
            }
        } 
于 2014-03-26T11:55:31.427 に答える