Classe LocationClient Android è deprecato, ma utilizzato nella documentazione

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

Se andiamo attraverso la documentazione della https://developer.android.com/reference/com/google/android/gms/location/LocationClient.html, possiamo vedere che la classe è deprecato .

Ma la classe obsoleto viene utilizzato nel https://developer.android.com/training/location/retrieve-current.html .

Penso che questo è po ' fuorviante o sto guardando documentazioni errate ?

---

Top 5 Risposta

1Sofi Software LLC @

Sembra che questo è stato coperto nel http://android-developers.blogspot.com/2014/02/new-client-api-model-in-google-play.html . Per LocationClient, utilizza questo in collaborazione con http://developer.android.com/reference/com/google/android/gms/location/LocationServices.html che poi ci porta a http://developer.android.com /reference/com/google/android/gms/location/GeofencingApi.html .

2paularius @

Alcuni dei documenti è vecchio in Google ( alcuni esempi che hai citato usano ancora il deprecato LocationClient ) . È necessario utilizzare il nuovo GoogleApiClient come descritto negli esempi posizione Servizi :

LocationClient

e quando il nuovo client è connesso, è possibile utilizzare il percorso api fusa per esempio come questo :

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

Ancora una volta Google ha rilasciato una nuova API, ma non hanno aggiornato la documentazione : $ Dopo trascorrere un po ' di tempo cercando di capire come funziona ho capito, qui si ha un esempio completo con il nuovo / ultime API Location Service ... Godetevi sviluppo :)

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

e non dimenticate di aggiungere queste autorizzazioni per il file 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());
    }
}

Nota : se è sufficiente per ottenere l'ultima posizione ( senza aggiornamenti ), è possibile utilizzare <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> da OnConnected

4PaulR @

LocationClient viene rimosso . GoogleApiClient è api da utilizzare per i servizi Google Play Posizione API .

Il codice di esempio per gli scenari più comuni è https://github.com/googlesamples/android-play-location ei corsi di formazione http://developer.android.com/training/location/index.html con più presto .