更快的是秒和精确提供者:GPS_PROVIDER或NETWORK_PROVIDER如果两者都启用了?

时间:2011-11-02 11:15:41

标签: android

我需要找到android的位置。我的问题是秒和精确提供者更快更快:如果两者都启用了GPS_PROVIDER或NETWORK_PROVIDER?你能告诉我返回位置需要多长时间,我是这些东西的新手,对时间一无所知。

5 个答案:

答案 0 :(得分:1)

您可以选择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;
}

答案 1 :(得分:0)

通常,考虑到您要求新位置,GPS_PROVIDER比NETWORK_PROVIDER花费更多时间。 NETWORK_PROVIDER通常很快,但GPS_PROVIDER,我不能告诉你(我不知道)确切的时间。

GPS比网络准确。

答案 2 :(得分:0)

在我的情况下,我发现NETWORK_PROVIDER比GPS_PROVIDER更快,很难说 “返回位置需要多长时间”总是不一样......

检查这个,我用它来检索当前位置:

http://code.google.com/p/messesinfoandroid/source/browse/trunk/src/cef/messesinfo/maps/MyLocation.java?spec=svn12&r=12

答案 3 :(得分:0)

GPS =&gt;更准确,更需要时间 网络=&gt;不太准确,需要的时间更少

(当然,您可以使用对象标准定义您对此的偏好)

答案 4 :(得分:0)

GPS提供商也只在户外工作,网络提供商也在室内工作。