2011-03-17 11 views
0

私は、携帯電話のGPS位置情報をユーザーに電子メールで送信するアプリケーションで作業しています。場所からしばらく前。Android GPSが更新されていないminTimeが0でminDistanceが0であるにもかかわらず、

minTimeとminDistの変更や、完了したらリスナーの削除(削除しない)など、いくつかの修正を試みました。しかし、このアプリケーションは特定の時間にのみ使用されるため、バッテリーの使用を最小限に抑えたいので、動作させることは良い選択ではありません。私は少量にMINTIMEを設定し、私が送られてきた第2のメッセージが更新され、それ以外のことと思われる場合にはLocationListenerを、取り外したことがない場合、私はいくつかの更新と運を持っていた

...

これは、GPSの場所を確かめるためにはもっと時間を与える必要があると思うのですが、どうすればそれを強制するのでしょうか?

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    LocationListener locationListener = new LocationListener() { 
     @Override 
     public void onStatusChanged(String provider, int status, 
       Bundle extras) { 
      // TODO Auto-generated method stub 
     } 
     @Override 
     public void onProviderEnabled(String provider) { 
      // TODO Auto-generated method stub 
     } 
     @Override 
     public void onProviderDisabled(String provider) { 
      // TODO Auto-generated method stub 
     } 
     @Override 
     public void onLocationChanged(Location location) { 
      // TODO Auto-generated method stub 
     } 
    };  
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, (long)(.000001), (float)(0), 
      locationListener);  
    String s = ""; 
    SimpleDateFormat timingFormat = new SimpleDateFormat("hh:mm"); 
    timingFormat.format(new Date()); 
    s += "The current time according to the clock is: " 
      + timingFormat.format(new Date()) + "\n"; 
    Location location = lm 
      .getLastKnownLocation(LocationManager.GPS_PROVIDER); 
    lm.removeUpdates(locationListener); 

(追加アドレスで、文字列Sを返します)

答えて

0

をあなたがするonLocationChangedに何かを置く必要があります。心の中で、私はこのスニペットをしようとしている。これにより

場所のアップデートが入っているもの

通常、最初に大雑把な近似を行い、GPSがaccuracでチューニングするとyは良くなる。これを効率的に処理するには、onLocationChangedの場所が正確であるかどうかをチェックし、正確な場所で何をしたいのかを確認します。

良いスタートはちょうどonLocationChanged()

Log.v("myapp","Location changed: "+location); 

を配置し、出力を見ることであろう。

関連する問題