GPS位置提供商可用性问题

时间:2010-11-12 12:22:29

标签: android

我的gps位置提供商需要至少一分钟才能使用。我拿了最好的提供者,它是“gps”。这是什么原因?我的代码在下面给出..

locationListener = new LocationListen();
    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    String provider = locationManager.getBestProvider(criteria, true);
    if(provider == null){
        provider = LocationManager.GPS_PROVIDER;
    }
    if(!locationManager.isProviderEnabled(provider)){
        locationManager.setTestProviderEnabled(provider, true);
    }
    boolean enabled = locationManager.isProviderEnabled(provider);
    if(enabled){
        System.out.println("provider enabled");
        //          setAlert("provider enabled", "", false);
    }else{
        System.out.println("provider disabled");
        //          setAlert("provider disabled", "", false);
    }
    locationManager.removeUpdates(locationListener);

    locationManager.requestLocationUpdates(provider, (long)1000, (float)0, locationListener); 

onStatusChanged()方法仅在至少一分钟后被调用,并且在调用此onLoctionChanged()方法之后,更改状态是提供程序可用性(可用)。延迟提供gps位置提供商的原因是什么?

1 个答案:

答案 0 :(得分:2)

你似乎错过了一些GPS理论。第一次启动GPS设备(“冷启动”)时,它必须扫描卫星并锁定它们,然后才能确定设备的位置。

虽然AGPS或ephemeryds更新,但只有在网络支持的情况下,才会减少修复时间,通常需要10秒到2分钟来修复,具体取决于天气状况,建筑物等。

这是硬件限制。尝试将您的修复时间与开放式国家的Android汽车导航软件进行比较,天空晴朗,相信您不会发现太多差异。但我仍然相信在这些条件下它会更少。

GPS固定时间通常可以接受一分钟。