伙计这是一个非常重要的问题。我发现很多开发人员遇到同样的问题而我面临同样的问题。我想在我的设备上获得直接位置但看起来非常困难。
我尝试过以下技术,它可以工作但很慢,可能是15分钟后我得到位置,
MIN_TIME_BW_UPDATES = 0;
MIN_DISTANCE_CHANGE_FOR_UPDATES = 0;
Boolean isGPSEnabled =
locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
if(isGPSEnabled) {
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, pendingIntent);
}
Boolean isNetworkEnabled =
locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if(isNetworkEnabled) {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, pendingIntent);
}
然后我尝试了这个,它也不起作用。
public String setCriteria() {
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_MEDIUM);
return locationManager.getBestProvider(criteria, true);
}
我也对getLastKnownPosition()感到困惑。它总是返回最后记录的位置。当然我不感兴趣。请帮助我如何立即访问地址。
答案 0 :(得分:0)
我建议您使用LocationClient而不是Locationmanager。融合的位置更简单,更容易理解。请参阅文档here
由LocationManager提供的getlastKnownLocation()可能会向您显示过期或旧的位置值
如果您对可用的最佳位置感兴趣,请使用getLastLocation()返回当前可用的最新位置。它提供具有最佳准确度的位置,同时尊重清单中指定的位置权限。