0

やあみんな私はユーザーの緯度経度を見つける必要があるアプリケーションを開発しています。私は次のコードを介してネットワークプロバイダーによって緯度経度を見つけることができます:-

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
loc = lm.getLastKnownLocation(lm.NETWORK_PROVIDER);
Toast.makeText(BaseScreen.this, "Lat: "+loc.getLatitude()+" long: "+loc.getLongitude(), Toast.LENGTH_LONG).show();

今、私が実装する必要があるケースは次のとおりです:-

  • ユーザーが建物内にいて、GPSからデータを取得できない場合はどうなりますか
  • ユーザーがGPSをオフにしていて、ネットワークから位置情報を取得したい場合はどうなりますか
  • 私のアプリケーションには、他のアクティビティによって拡張された1つのベース画面にlocationlistenerのコードを配置し、一部のデータマネージャに緯度と経度を保存し続けると、20のアクティビティがあります。アクティビティがない場合でも、そのベース画面アクティビティでコールバックが機能します。メインのUIアクティビティ??
4

1 に答える 1

0

a。通常、更新を要求するときにGPSとネットワークプロバイダーの両方に登録する必要があります。これにより、ネットワークが提供する値に自動的にフォールバックする視線の問題が処理されます。

b。GPSがオフになっている場合は、isProviderEnabled()を使用してコードから確認できます。そうでない場合は、ネットワークプロバイダーを使用するしかありません。

c。それでも、LocationListenerを別のクラスとして使用し、onLocationChangedに、アプリケーション全体で使用できるはずの受信した場所を保存することをお勧めします。

登録するには、android.location.LocationListener.requestLocationUpdatesを使用します

于 2011-05-16T20:16:01.227 に答える