Androidでの位置情報へのアクセスに関する私の理解によると:
- Location Provider には権限 ACCESS_COARSE_LOCATION が必要で、精度は低くなりますが、場所の取得は高速です。
- 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 ロケーション プロバイダーは通常、より低い精度とより高い時間を提供します。
なぜこれが起こっているのか分かりません。