私のクライアントは、すべての GPS 位置のスプレッドシートを等間隔で生成する GPS アプリを求めています。スピナーを使用して時間間隔を設定できます。
現在、LocationManager
マネージャーのonLocationChanged(Location loc)
コールバックを使用して場所が変更されると、アプリは新しい GPS の場所を取得します。
位置が変化したときではなく、時間間隔で新しい GPS 位置を取得する方法はありますか?
コード:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//if you want to lock screen for always Portrait mode
setRequestedOrientation(ActivityInfo
.SCREEN_ORIENTATION_PORTRAIT);
pb = (ProgressBar) findViewById(R.id.progressBar1);
pb.setVisibility(View.INVISIBLE);
viewLog= (TextView) findViewById(R.id.ViewLong);
viewLat= (TextView) findViewById(R.id.ViewLat);
locationMangaer = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
StartGPS();
}
void StartGPS()
{
flag = displayGpsStatus();
if (flag) {
pb.setVisibility(View.VISIBLE);
locationListener = new MyLocationListener();
locationMangaer.requestLocationUpdates(LocationManager .GPS_PROVIDER, 5000, 10,locationListener);
} else {
alertbox("Gps Status!!", "Your GPS is: OFF");
}
}
@Override
public void onClick(View v) {
}
/*----------Listener class to get coordinates ------------- */
private class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
String longitude = "Longitude: " +loc.getLongitude();
viewLog.setText(longitude);
String latitude = "Latitude: " +loc.getLatitude();
viewLat.setText( latitude);
pb.setVisibility(View.INVISIBLE);
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider,
int status, Bundle extras) {
// TODO Auto-generated method stub
}
}