【问题标题】:Is there a way to get GPS location on a time interval instead of when the position changes?有没有办法在时间间隔而不是位置改变时获取 GPS 位置?
【发布时间】:2012-10-10 22:32:28
【问题描述】:

我的客户想要一个 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           
        }  
    }  

【问题讨论】:

    标签: android gps


    【解决方案1】:

    像现在一样注册位置更新。忽略传递给LocationListener 的值。根据您想要的轮询频率,致电getLastKnownLocation() 获取您用于更新位置的任何提供商。

    【讨论】:

      猜你喜欢
      • 2013-03-25
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-06
      相关资源
      最近更新 更多