4

Androidでの位置情報へのアクセスに関する私の理解によると:

  1. Location Provider には権限 ACCESS_COARSE_LOCATION が必要で、精度は低くなりますが、場所の取得は高速です。
  2. GPS プロバイダーにはアクセス許可 ACCESS_FINE_LOCATION が必要で、精度が高く、場所の取得に時間がかかります。

これをよく理解して、次のコードを実行しました

//Go through a list of all location providers to get the "best" one
List<String> locationProviders = locationManager.getAllProviders();
for (String locationProviderInit : locationProviders) {
    Log.d(DEBUG_TAG, "found locationProvider:" + locationProviderInit);
    Location lastKnownLocation = locationManager.getLastKnownLocation(locationProviderInit);
    if (lastKnownLocation != null) {
        Log.d(DEBUG_TAG, "accuracy: " + lastKnownLocation.getAccuracy());
        Log.d(DEBUG_TAG, "time: " + lastKnownLocation.getTime());
    }
}

ネットワーク ロケーション プロバイダーは一貫して 60.0 の精度を提供しますが、GPS ロケーション プロバイダーは通常、より低い精度とより高い時間を提供します。

なぜこれが起こっているのか分かりません。

4

1 に答える 1

3

精度の測定値はメートル単位の位置の精度であるため、値が小さいほど位置が正確であることを示します。したがって、60.0 メートル以内の正確な場所は、どの方向にも最大 60 メートルずれている可能性がありますが、5.0 メートル以内の正確な場所は、最大 5 メートルしかずれていません。

于 2011-07-01T15:42:37.723 に答える