0

メソッドを使用LocationClientしてユーザーの現在の場所を取得しています。非常にうまく機能していますが、明らかな理由で正確でない場合があります (屋内にいる、WIFI を使用しているなど)。場所を取得するために使用される場所プロバイダーが特定されているかどうかを知りたいです。getProvider() は、私が内部にいるか外部にいるかに関係なく、「融合」を返します。おそらく彼が中にいるため、正確な位置を取得していないことをユーザーに伝える必要があります。さらに良いことに、ユーザーの場所を取得するために使用されるプロバイダーをユーザーに伝えます。

4

2 に答える 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 に答える