0

私のクライアントは、すべての 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           
        }  
    }  
4

1 に答える 1

1

現在の位置情報の更新に登録します。に渡される値は無視してくださいLocationListener。希望するポーリング頻度で、getLastKnownLocation()現在地の更新に使用しているプロバイダーを呼び出します。

于 2012-10-10T23:07:47.160 に答える