2012-05-07 11 views
1
私は私のデータベースに私の場所を送信したい

.. は、私はこの送信値の場所は

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    LocationManager locationManager; 
    String context = Context.LOCATION_SERVICE; 
    locationManager = (LocationManager)getSystemService(context); 

    Criteria criteria = new Criteria(); 
    criteria.setAccuracy(Criteria.ACCURACY_FINE); 
    criteria.setAltitudeRequired(false); 
    criteria.setBearingRequired(false); 
    criteria.setCostAllowed(true); 
    criteria.setPowerRequirement(Criteria.POWER_LOW); 
    String provider = locationManager.getBestProvider(criteria, true); 

    //Location location = locationManager.getLastKnownLocation(provider); 
    updateWithNewLocation(null); 

    locationManager.requestLocationUpdates(provider, 2000, 10, 
              locationListener); 

} 
private final LocationListener locationListener = new LocationListener() { 
    public void onLocationChanged(Location location) { 
     updateWithNewLocation(location); 
    } 

    public void onProviderDisabled(String provider){ 
     updateWithNewLocation(null); 
    } 

    public void onProviderEnabled(String provider){ } 
    public void onStatusChanged(String provider, int status, 
           Bundle extras){ } 
    }; 
    private void updateWithNewLocation(Location location) { 
     //EditText etlat=(EditText)findViewById(R.id.lat); 
     //EditText etlong=(EditText)findViewById(R.id.lng); 


     if (location != null) { 
      double lat = location.getLatitude(); 
      System.out.println(lat); 
      double lng = location.getLongitude(); 
      System.out.println(lng); 
      double alt = location.getAltitude(); 
      System.out.println(alt); 
      etlat.setText(String.valueOf(lat)); 
      etlng.setText(String.valueOf(lng)); 
      etalt.setText(String.valueOf(alt)); 
     } 
    } 

のような場所(緯度・経度)を取得するためのコードを持っているし、私は私の場所を保存したい10分後に続きます
どうすればいいですか?ありがとう:)

答えて

0

10分の間隔でタイマーを起動するだけです。make requestLocationUpdate();

次に、各GPS修正の緯度、ログ値を取得します。location.getAccuracy()によって最適値を取得し、データベース挿入のコードを記述します。

+0

私は10分の間隔でタイマーを設定することができますか? – akubabas

+0

このリンクをチェックしてくださいhttp://stackoverflow.com/questions/4044726/how-to-set-a-timer-in-java – NullPointerException

+0

私はこのコードを私のコードに入れますか?ありがとう:) – akubabas

2
locationManager.requestLocationUpdates(provider,(10*60*1000),10, 
              locationListener); 

これを試すことができます。

+0

私はこのコードを書いています私のコードでonCreateに?? – akubabas

+0

はい..あなたの既存の線で置き換えてください... (10 * 60 * 1000)は、これらの多くのミリデバイスがそれ自身を見つけるのを開始した後のミリ秒です。 –

+0

それは自動的に経度と緯度からの値を10分?? – akubabas

1

Serviceを拡張するクラスを作成し、マニフェストファイルに適切なタグを追加します。

サービスが実行されているときに実行するコードを、場所を取得してonCreate()メソッドでデータベースに保存するように記述します。

このチュートリアルを参照することができます。 http://www.vogella.com/articles/AndroidServices/article.html

関連する問題