2014-12-08 21 views
27

Sadece google oyun hizmetleri rev 22'ye güncellendi ve LocationClient sınıfı eksik gibi görünüyor. Ne oluyor?LocationClient sınıfı google oyun hizmetleri bulunamadı 22 22

+5

'LocationClient' yaz aylarından beri kullanımdan kaldırıldı ve görünüşe göre artık tamamen kurtuldu. Bunun için GoogleApiClient’i kullanan yeni bir API var. Örnek bir uygulama için https://github.com/commonsguy/cw-omnibus/tree/master/Location/FusedNew adresini ziyaret edin. – CommonsWare

+0

Hızlı yanıt için teşekkürler! Bu yeni API ile kaynaştırılmış konumun nasıl kullanılacağıyla ilgili bir belge var mı? Hiç bir fikrim yoktu, şimdi benim appim artık – ThanosFisherman

+1

kırıldı. Son baktığımda belgeler neredeyse hiç yoktu. Yığın Taşması ile ilgili diğer sorular da dahil olmak üzere çeşitli kaynaklardan örnek uygulamamı (ve bunu kullanan kitap bölüm güncellememi) bir araya getirmek zorunda kaldım. Daha sonra, bir süredir doktora gitmedim, bu yüzden bakmadığım bir öğretici veya bir şey yayınlamış olmaları muhtemel. :-) – CommonsWare

cevap

68

@CommnsWare, Binada, Fused api'ye geçiş yapmak için gereken adımları belirtti.

Adım 1: LocationClient yerine GoogleApiClient örneğini alın.

ConnectionCallback (aşağıdaki örnekte mConnectionCallbacks, mOnConnectionFailedListener) hafif bir değişiklik ihtiyacı ancak önemsiz olması gerekir.

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

Adım 2: Güncelleştirme bağlamak ve aramaları ayırın.

googleApiClient.disconnect() ile googleApiClient.connect() ile locationClient.connect() ve locationClient.disconnect() değiştirin.

Adım 3: İsteklerinizi göndermek için LocationServices.FusedLocationApi kullanın. örn. Bu yardımcı olur

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

Umut!

+3

Yeap, sadece onları @CommonsWare örneğini kullanarak çözdüğüm adımlar. Arayüzler için, GoogleApiClient.ConnectionCallbacks ile eskileri değiştirmeniz gerekiyor, GoogleApiClient.OnConnectionFailedListener Plus LocationListener artık aynı kalıyor sadece onDisconnect yöntemi yok – ThanosFisherman

+0

Belirli aralıklarla konum güncellemeleri isteme konusunda ne düşünüyorsun? Bu GoogleApiClient'de hala destekleniyor mu? –

İlgili konular