我的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位置提供商的原因是什么?
答案 0 :(得分:2)
虽然AGPS或ephemeryds更新,但只有在网络支持的情况下,才会减少修复时间,通常需要10秒到2分钟来修复,具体取决于天气状况,建筑物等。
这是硬件限制。尝试将您的修复时间与开放式国家的Android汽车导航软件进行比较,天空晴朗,相信您不会发现太多差异。但我仍然相信在这些条件下它会更少。
GPS固定时间通常可以接受一分钟。