我的手机没有移动,但GPS数据仍在变化

时间:2012-03-25 08:21:01

标签: android gps

我有一个简单的Android代码,可以通过Web服务定期向数据库发送GPS位置。出于测试目的,我将minTime设置为2000ms。

lm=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
ll=new SpeedoActionListener();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,2000, 0,ll);

但是...

  1. 当我的手机没有移动时,它仍会在数据库中插入不同的经度和纬度值。
  2. 即使我禁用GPS,它也会向数据库发送不同的经度纬度,直到我关闭手机和笔记本电脑之间的连接。
  3. Web服务托管在IIS7上,我的手机和笔记本电脑通过Wi-Fi连接

    虽然我的手机没有移动,为什么它会发送不同的位置?

    private class SpeedoActionListener implements LocationListener
    {
    
        String result=null;
    
          @Override
          public void onLocationChanged(Location location) {
    
              if(location!=null) {
                lati=location.getLatitude();
    
                longi=location.getLongitude();
    
                String mylati=Double.toString(lati);
                String mylongi=Double.toString(longi);
                WebServiceCaller obj=new WebServiceCaller();
                result=obj.sendLocationData(mylongi, mylati);
                resultText=(TextView)findViewById(R.id.result);
                resultText.setText(result);
    
    
          }
    
    }
    
          @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
    
          }
    }
    }
    

3 个答案:

答案 0 :(得分:5)

在低精度设置中,数据将从Wifi网络接收。检查Android手机上的设置/位置/使用无线网络复选框。

答案 1 :(得分:4)

Android在可用时使用GPS,但不仅仅依赖于GPS。如指南主题Obtaining User Location中所述,其使用什么数据源的内部是一个复杂的主题。例如,位置变化可能来自电话切换策略以节省电池寿命。

答案 2 :(得分:2)

GPS具有固有的不精确性,所以我预计会有轻微的变化。我不知道为什么当你转向GPS时它会不断变化(正如其他答案所指出的那样,它可能正在使用像WiFi三角测量这样的替代来源)。