2014-12-08 43 views
27

Ho appena aggiornato i servizi di google play a rev 22 e la classe LocationClient sembra mancare. Cosa sta succedendo?Classe LocationClient non trovata su google play services rev 22

+5

'LocationClient' è stato ritirato dall'estate, e apparentemente ora si sono sbarazzati del tutto. C'è una nuova API per questo, usando 'GoogleApiClient'. Vedi https://github.com/commonsguy/cw-omnibus/tree/master/Location/FusedNew per un'app campione. – CommonsWare

+0

Grazie per la risposta veloce! C'è qualche documentazione su come utilizzare la posizione fusa con questa nuova API? Non ne avevo idea, quindi ora la mia app è interrotta – ThanosFisherman

+1

La documentazione era praticamente inesistente quando l'ho guardata l'ultima volta. Ho dovuto mettere insieme la mia app di esempio (e il mio aggiornamento del capitolo del libro che la usa) da varie fonti, comprese altre domande qui su Stack Overflow. Poi di nuovo, non ho cercato documenti per un po ', quindi è possibile che abbiano pubblicato un tutorial o qualcosa del genere quando non stavo guardando. :-) – CommonsWare

risposta

68

Sulla base di ciò che ha detto @CommnsWare, ecco i passaggi per eseguire la migrazione a Fused api.

Passaggio 1: ottenere un'istanza di GoogleApiClient anziché LocationClient.

Il ConnectionCallback (mConnectionCallbacks, mOnConnectionFailedListener nell'esempio seguente) richiede una leggera modifica ma dovrebbe essere banale.

googleApiClient = new GoogleApiClient.Builder(this) 
     .addApi(LocationServices.API) 
     .addConnectionCallbacks(mConnectionCallbacks) 
     .addOnConnectionFailedListener(mOnConnectionFailedListener) 
     .build(); 

Passaggio 2: Aggiornamento connessione e disconnessione chiamate.

Sostituire la locationClient.connect() con googleApiClient.connect() e locationClient.disconnect() con googleApiClient.disconnect().

Passaggio 3: utilizzare LocationServices.FusedLocationApi per inviare le richieste. ad es.

LocationServices.FusedLocationApi.getLastLocation(googleApiClient) 
LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, request, mLocationListener); 

Spero che questo aiuti!

+3

Yeap sono i passaggi che ho appena trovato utilizzando anche l'esempio @CommonsWare. Inoltre, per le interfacce devi solo sostituire i vecchi con GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener Plus LocationListener rimane lo stesso solo che non esiste più un metodo onDisconnect – ThanosFisherman

+0

Come richiedere gli aggiornamenti della posizione a determinati intervalli? È ancora supportato in GoogleApiClient? –

Problemi correlati