2012-01-30 11 views
0

こんにちは私はネットワークプロバイダを使用してGPS値を取得するアプリケーションで位置リスナを実装しました。うまくいきましたが、今はネットワークプロバイダとGPSプロバイダを使ってGPSを取得したいと考えています。努力していますが、同じ価値を得ています。ネットワークとGPSプロバイダを使用してLatitudeを取得する問題

ここに私のコード私はnetworkLocとgpsLocを使用する必要が

Location networkLoc = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
    Location gpsLoc = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

@Override 
    public void onLocationChanged(Location location) { 

     double lat1 = (double) (location.getLatitude());//here i get the latitude value..how to know these values are from different provider 
     double lng1= (double) (location.getLongitude()); 
     latituteField.setText(Double.toString(lat)); 
     longitudeField.setText(Double.toString(lng)); 


    } 

答えて

1

これは、ユーザーがGPSが

provider = locationManager.getBestProvider(criteria, false); 

あなたのラインを有効にしている場合ことを、ケースかもしれすでにLocationManager.GPS_PROVIDERを返すので、あなただけの同じプロバイダで二回getLastKnownLocation(provider)を照会しています。代わりにこれを試してみてください:

Location networkLoc = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
    Location gpsLoc = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

またはあなたが本当に

List<String> providers = locationManager.getProviders(false); 
Location[] loc = new Location[providers.size]; 
int i = 0; 
for (String provider: providers){ 
    loc[i++] = locationManager.getLastKnownLocation(provider); 
} 

EDITを使用するかを気にしない場合:原因質問

//query provider from Location 
public void onLocationChanged(Location loc){ 
    String provider = loc.getProvider(); 
    if (provider.equals(LocationManager.GPS_PROVIDER)){ 
     //GPS Location 
    } else if (provider.equals(LocationManager.NETWORK_PROVIDER)){ 
     //Network Location 
    } 
    .... 
} 
+0

@Rafel、毎回のリファクタリングに私は両方のプロバイダを取得したいと思うonlocationで使用する変更? – Mercy

+0

申し訳ありませんが、あなたの質問を正しく理解できませんでした。また、onPauseでlocationChangesの登録を解除する必要があります。あなたはLocationが 'location.getProvider()'で送られたプロバイダを調べることができます。すべてがあなたのonLocationChanged内でうまくいくようです。 –

+0

親切に私のコードを更新するRafael – Mercy

関連する問題