0

FragmentクラスにLocationListenerを実装し、次のコードを使用して場所の更新を追跡していますが、頻繁に更新されることはありません。GoogleNavigatorのように地図上でユーザーの位置を表示する必要があります。

最高のプロバイダーを探す

mLocationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();

// if I uncomment the next line, it takes too long to get the location
// criteria.setAccuracy(Criteria.ACCURACY_FINE);
// if I leave the line above commented, the app seems to receiving location from triangulation

mProvider = mLocationManager.getBestProvider(criteria, false);
Location location = mLocationManager.getLastKnowLocation(mProvider);

LocationChangedイベント

@Override
public void onLocationChanged(Location location) {
    LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());

    setMapCameraPosition(latLng);
}
4

1 に答える 1

1

存在する場合と存在しない場合がある、最後の既知の場所のみを求めています。LocationListener を使用するには、いずれかのrequestLocationUpdates()メソッドを呼び出す必要があります。

mLocationManager.requestLocationUpdates(mProvider, 0, 0, mLocationListener);
于 2013-01-25T16:00:29.070 に答える