我需要找到安卓的位置。我的问题是,如果同时启用GPS_PROVIDER和NETWORK_PROVIDER,秒数和精确度提供商哪个更快?你能告诉我需要多长时间才能返回位置,我对这些东西是新的,对时间没有任何概念。
发布于 2011-11-02 19:18:05
您可以选择想要获得最佳提供商的Criteria,例如,如果您的条件是精度:
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Criteria c = new Criteria();
c.setAccuracy(Criteria.ACCURACY_FINE);
final String PROVIDER = lm.getBestProvider(c, true);
此外,如果你想要快速定位,你可以使用如下函数(从here中提取)来获取最近已知的位置:
public static Location getLastKnownLocation(LocationManager locationManager)
{
Location bestResult = null;
float bestAccuracy = 0;
long bestTime = 0;
List<String> matchingProviders = locationManager.getAllProviders();
for (String provider: matchingProviders) {
Location location = locationManager.getLastKnownLocation(provider);
if (location != null) {
float accuracy = location.getAccuracy();
long time = location.getTime();
if ((time > minTime && accuracy < bestAccuracy)) {
bestResult = location;
bestAccuracy = accuracy;
bestTime = time;
}
else if (time < minTime &&
bestAccuracy == Float.MAX_VALUE && time > bestTime){
bestResult = location;
bestTime = time;
}
}
}
return bestResult;
}
发布于 2011-11-02 19:18:29
一般来说,考虑到您正在请求一个新位置,GPS_PROVIDER比NETWORK_PROVIDER需要更多的时间。NETWORK_PROVIDER通常很快,但是GPS_PROVIDER,我不能告诉你(我不知道)这件事的确切时间。
GPS在网络上是精确的。
发布于 2011-11-02 19:22:39
在我的例子中,我发现NETWORK_PROVIDER比GPS_PROVIDER更快,很难说“返回位置需要多长时间”它并不总是相同的……
检查这个,我用它来检索当前位置:
http://code.google.com/p/messesinfoandroid/source/browse/trunk/src/cef/messesinfo/maps/MyLocation.java?spec=svn12&r=12
https://stackoverflow.com/questions/7979426
复制相似问题