2012-10-16 8 views
8

、MapViewのは、など。
は:は、私はアンドロイドLocationManager.getBestProvider私は位置情報の更新をお願いするたびに使用する必要がありますか?私はこのコードを最初に使用し、私の現在の位置を取得する必要があるとき私は、GoogleのAPIとMapActivityを使用してい

myLocationManager =(LocationManager)getSystemService(Context.LOCATION_SERVICE); 
// Sets the criteria for a fine and low power provider 
Criteria crit = new Criteria(); 
crit.setAccuracy(Criteria.ACCURACY_FINE); 
crit.setPowerRequirement(Criteria.POWER_LOW);  
// Gets the best matched provider, and only if it's on 
String provider = myLocationManager.getBestProvider(crit, true); 
// If there are no location providers available 
if (provider == null){ 
    OnClickListener listener = new OnClickListener() { 

     public void onClick(DialogInterface dialog, int which) { 
      // Closes the activity 
      finish(); 
     } 
    }; 
    Utils.getInstance().showAlertDialog(this, R.string.warning_dialog_title, 
           R.string.no_location_providers_error_message, 
          android.R.drawable.ic_dialog_alert, false, listener); 
} 
// Location services is enabled 
else{ 
    myLocationListener = new MyLocationListener(); 
    myLocationManager.requestLocationUpdates(
      provider, 
      0, 
      0, 
      myLocationListener);   
    // TODO - put a marker in my location  
    GeoPoint currentGeoPoint = MapUtils.getInstance(). 
      getCurrentLocation(myLocationManager, provider);   
    // Center to the current location 
    centerLocation(currentGeoPoint, MAX_ZOOM); 
} 

は、私はまた、「戻って現在の場所に持っていますユーザーが地図を移動して現在の場所にすばやく戻りたい場合に使用します。

私の質問は、私は、位置情報を取得したい は私がgetBestProvider()方法たびを使用する必要があります、ありますか?

私は最後選びだしプロバイダを救うことができるが、条件は、第二のすべての変更ができます

  1. ユーザーがオフになっては
  2. ませんGPS信号
  3. NETWORK_PROVIDERが
  4. など、現在の状況で優れているGPS ...

正しいアプローチは何ですか?

+0

http://stackoverflow.com/questions/3145089/what-is-the-simplest-and-most-robust-way- -取得 - ユーザー - 現在のロケーションイン/ 3145655#3145655。リンクを確認してください。あなたはあなたの質問に対する答えを見つけることができます。 – Raghunandan

+0

これは私の質問にまだ答えません。私のコードも動作します。しかし、私は毎回getBestProviderを呼び出さないといけませんか?私の意見ではい... –

+0

http://developer.android.com/guide/topics/location/strategies.html#BestEstimate。あなたはおそらくこのリンクを通るべきです。 – Raghunandan

答えて

0

これはいつでも使用できますが、Location.getTime() - >これは修正された時刻を示しているため、新旧のロケーションの修正を簡単に区別できます。 COMENTSに言われよう