Android класс LocationClient не одобряется, но, используемых в документах

? George Mathew K @ | Original: StackOverFlow
---

Если мы идем через документации https://developer.android.com/reference/com/google/android/gms/location/LocationClient.html, мы видим, чтокласс является устаревшим.

Но не рекомендуется класс используется в https://developer.android.com/training/location/retrieve-current.html .

Я думаю, что это немного вводит в заблуждение или я, глядя на неправильных документации ?

---

Top 5 ответ

1Sofi Software LLC @

Похоже, что это было покрыто в http://android-developers.blogspot.com/2014/02/new-client-api-model-in-google-play.html . Для LocationClient, вы будете использовать это в сочетании с http://developer.android.com/reference/com/google/android/gms/location/LocationServices.html который затем приводит нас к http://developer.android.com /reference/com/google/android/gms/location/GeofencingApi.html .

2paularius @

Некоторые из документации старый в Google (некоторые примеры вы упоминали до сих пор используют устаревшие LocationClient ) . Вы должны использовать новый GoogleApiClient, как описано в примерах Место оказания услуг :

LocationClient

и когдановый клиент подключается, вы можете использовать слитую Location API, например так:

new GoogleApiClient.Builder(context)
 .addApi(LocationServices.API)
 .addConnectionCallbacks(this)
 .addOnConnectionFailedListener(this)
 .build()
3Diego Palomar @

Опять Google выпустила новую API, но они не обновили документацию : $ После потратить некоторое время, пытаясь выяснить, как это работает, я получил его, здесь у вас есть полный пример, использующий новый / последней API Location Service ... Наслаждайтесь разработке :)

LocationServices.FusedLocationApi.requestLocationUpdates(theNewClient, 
    locationRequest, locationListener);

и не забудьте добавить эту прав доступа к вашим AndroidManifest.xml файла :

import android.location.Location;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.location.LocationListener;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationServices;

public class MainActivity extends Activity implements
        GoogleApiClient.ConnectionCallbacks,
        GoogleApiClient.OnConnectionFailedListener,
        LocationListener {

    private final String TAG = "MyAwesomeApp";

    private TextView mLocationView;

    private GoogleApiClient mGoogleApiClient;

    private LocationRequest mLocationRequest;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mLocationView = new TextView(this);

        setContentView(mLocationView);

        mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addApi(LocationServices.API)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();
    }

    @Override
    protected void onStart() {
        super.onStart();
        // Connect the client.
        mGoogleApiClient.connect();
    }

    @Override
    protected void onStop() {
        // Disconnecting the client invalidates it.
        mGoogleApiClient.disconnect();
        super.onStop();
    }

    @Override
    public void onConnected(Bundle bundle) {

        mLocationRequest = LocationRequest.create();
        mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        mLocationRequest.setInterval(1000); // Update location every second

        LocationServices.FusedLocationApi.requestLocationUpdates(
                mGoogleApiClient, mLocationRequest, this);
    }

    @Override
    public void onConnectionSuspended(int i) {
        Log.i(TAG, "GoogleApiClient connection has been suspend");
    }

    @Override
    public void onConnectionFailed(ConnectionResult connectionResult) {
        Log.i(TAG, "GoogleApiClient connection has failed");
    }

    @Override
    public void onLocationChanged(Location location) {
        mLocationView.setText("Location received: " + location.toString());
    }
}

Примечание: если вам просто нужно, чтобы получить последнее место (без обновлений), вы можете использовать <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> от OnConnected

4PaulR @

LocationClient удаляется. GoogleApiClient является API для использования Google Play API, сервисы определения местоположения .

Пример кода для общих сценариев https://github.com/googlesamples/android-play-location и учебные классы http://developer.android.com/training/location/index.html с более скоро .