Android LocationClient Klasse ist veraltet, aber in der Dokumentation verwendet

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

Wenn wir durch die Dokumentation der https://developer.android.com/reference/com/google/android/gms/location/LocationClient.html gehen, können wir sehen, dass die Klasse ist veraltet.

Aber der veraltet Klasse wird in der https://developer.android.com/training/location/retrieve-current.html verwendet .

Ich denke, das ist etwas irreführend, oder bin ich Blick auf falsche Dokumentationen ?

---

Top 5 Antwort

1Sofi Software LLC @

Es sieht aus wie dies in der http://android-developers.blogspot.com/2014/02/new-client-api-model-in-google-play.html bedeckt. Für LocationClient, würden Sie dies in Verbindung mit http://developer.android.com/reference/com/google/android/gms/location/LocationServices.html verwenden, die dann führt uns zu http://developer.android.com /reference/com/google/android/gms/location/GeofencingApi.html .

2paularius @

Ein Teil der Dokumentation ist alt in Google (einige Beispiele, die Sie noch erwähnt, verwenden Sie den als veraltet LocationClient). Sie müssen die neuen GoogleApiClient verwenden wie in den Standort Dienstleistungen Beispielen beschrieben :

LocationClient

und wenn der neue Client verbunden ist, können Sie den Standort verschmolzen api zum Beispiel wie folgt zu verwenden :

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

Auch Google hat eine neue API veröffentlicht, aber sie haben nicht aktualisiert die Dokumentation : $ Nachdem einige Zeit, um herauszufinden, wie es funktioniert, ich habe es, hier können Sie ein vollständiges Beispiel mit dem neuen / aktuellen Standort -Service-API haben ... Genießen Entwicklung :)

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

und vergessen Sie nicht, diese Berechtigungen für Ihre AndroidManifest.xml Datei hinzufügen :

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());
    }
}

Hinweis: Wenn Sie müssen nur die letzte Position (ohne Updates) zu erhalten, die Sie von OnConnected verwenden können <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

4PaulR @

LocationClient entfernt wird. GoogleApiClient ist api für Google Play Dienstleistungen Ort APIs verwenden .

Der Beispielcode für die häufigsten Szenarien ist https://github.com/googlesamples/android-play-location und die Schulungen http://developer.android.com/training/location/index.html mehr in Kürze.