2011-07-20 89 views
0

我现在创建一个应用程序来检测设备通过GPS的位置,我有GPS状态的问题,我看通过GpsStatus.Listener,但它很复杂,因为我是一个Android新手。如何测试GPS状态?

这里是我试图做的与GPS状态我在正确的轨道?

final Listener onGpsStatusChange = new GpsStatus.Listener() { 

     @Override 
     public void onGpsStatusChanged(int event) { 
      // TODO Auto-generated method stub 
      switch(event){ 
      case GpsStatus.GPS_EVENT_STARTED: 
      // Started... 
      break ; 
      case GpsStatus.GPS_EVENT_FIRST_FIX: 
      // First Fix... 
      break ; 
      case GpsStatus.GPS_EVENT_STOPPED: 
      // Stopped... 
      break ; 
      } 
     } 
    }; 

我想测试设备是否是:

  • 没有变化
  • 新位置
  • start_
  • 没有GPS数据

你能解释一下GPSS状态用示例??,谢谢。

编辑: 家伙,它非常有帮助,到目前为止,现在我坚持没有改变位置:当用户仍然停留在相同的位置,然后onLocationChange方法不会解雇我错了?那么如何测试它才能发送到服务器? :)

回答

2

看看LocationManager,GPS状态是关于GPS引擎本身没有位置通知,并且在所有平台/设备上都不可靠,甚至无法确定您是否有修复。

或者采用较老,但仍然具有现实意义tutorial

+0

这是非常有用的,Thx – sayvortana

1

当onGpsStatusChanged()从它意味着有一个有效的GPS状态更新框架调用。使用getGpsStatus()检索最新的GPS状态更新。

public void onGpsStatusChanged(int event) { 
     if (event == GpsStatus.GPS_EVENT_STARTED) { 
      Log.d(TAG , "GPS event started "); 

     } else if (event == GpsStatus.GPS_EVENT_STOPPED) { 
      Log.d(TAG , "GPS event stopped "); 

     } else if (event == GpsStatus.GPS_EVENT_FIRST_FIX) { 

      GpsStatus gs = locationManager.getGpsStatus(null); 

您可以使用上面的代码片段。请注意,您需要的一些数据位于GpsStatus结构中。

您可以从onLocationChanged()回调中获取您需要的其他信息,如新位置。

+0

你的意思是有效的GPS地位,你的平均GPS可用? 如果无效意味着没有GPS? gps如何改变?如何测试? thx – sayvortana

+0

不,我的意思是新的GPS状态可用。 *您的*“无变化”的定义是什么? :没有位置更改?没有状态改变? – Reno

+0

里诺:我的意思是没有改变是当GPS仍然没有改变,所以它意味着相同的情况下,它不会触发onLocationChange方法吗?所以我想重新发送我的电流到服务器,我应该在哪里测试它? – sayvortana