2015-06-03 10 views
5

Sto cercando di utilizzare GCM per fare comunicazioni asincrone tra la mia app e un piccolo server Java di backend in esecuzione sul mio personal computer. Il mio problema è che non riesco a capire le pagine di riferimento reticolate e contraddittorie per GCM e Google Play Services. Mi piacerebbe utilizzare una delle vecchie risposte a questa domanda, ma l'API e la documentazione sono stati rielaborati negli ultimi due mesi e tutte le domande simili che ho trovato risalgono allo scorso anno.Come posso verificare la disponibilità dell'API di Google Play Services? (in particolare l'API GCM)

Google's guide for setting up Google Play Services dice per garantire le API necessarie sono presenti utilizzando:

  1. La classe GoogleApiClient, che fornisce un esempio di uso API motrice (.addApi(Drive.API)), ma non c'è GoogleCloudMessaging.API che posso trovare, così non funzionerà
  2. "Un altro approccio consiste nell'utilizzare il metodo isGooglePlayServicesAvailable()." Questo link alla classe GooglePlayServicesUtil, ma quasi tutti i metodi in questa classe sono deprecati a favore della versione non statica di GoogleApiAvailability, e vorrei comprensibilmente evitare di utilizzare il codice deprecato laddove possibile. Anche la classe GoogleApiAvailability non mi consente di creare un'istanza.

Quindi le mie domande sono queste: Come posso garantire che un dispositivo abbia una versione aggiornata di Google Play Services? E c'è un modo per verificare se l'API GCM è disponibile prima di usarla (o devo anche farlo se Google Play Services è aggiornato)?

Ulteriori informazioni:
Min SDK 14
target SDK 22

Ci scusiamo per non aver il collegamento ad alcuni dei documenti, rammendare i limiti di collegamento reputazione.

+3

Hai provato a utilizzare 'GoogleApiAvailability.getInstance()'? –

+0

Come mi sono perso? Grazie per la segnalazione! –

+0

@GabeV https://en.wikipedia.org/wiki/Singleton_pattern#Example – bitek

risposta

6

Grazie a Daniel Nugent per aver sottolineato che avevo perso l'esistenza di GoogleApiAvailability.getInstance()!