メソッドを使用LocationClient
してユーザーの現在の場所を取得しています。非常にうまく機能していますが、明らかな理由で正確でない場合があります (屋内にいる、WIFI を使用しているなど)。場所を取得するために使用される場所プロバイダーが特定されているかどうかを知りたいです。getProvider() は、私が内部にいるか外部にいるかに関係なく、「融合」を返します。おそらく彼が中にいるため、正確な位置を取得していないことをユーザーに伝える必要があります。さらに良いことに、ユーザーの場所を取得するために使用されるプロバイダーをユーザーに伝えます。
2 に答える
0
isProviderEnabled メソッドを使用して、プロバイダーが利用可能かどうかを確認できます。
mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)
mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)
于 2014-10-30T14:36:09.607 に答える
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;
}
}
}
これがお役に立てば幸いです。
于 2014-10-30T14:41:27.813 に答える