如何测试GPS状态?

时间:2011-07-20 01:00:15

标签: android google-maps gps

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

这是我在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 ;
            }
        }
    };

我想测试设备是否:

  • 无变化
  • 新位置
  • 开始_
  • 没有gps数据

你能解释一下GPS状态吗?谢谢。

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

2 个答案:

答案 0 :(得分:2)

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

或者是较旧但仍然相关的tutorial

答案 1 :(得分: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()回调中获取。