2012-11-02 1 views
22

Google Play services è una libreria di Android il cui obiettivo è quello di fornire:Servizi Google Play: come gestire i dispositivi che non dispongono di Google Play?

  • OAuth 2.0 autenticazione
  • a Google+
  • Google+ +1 pulsante
  • varie altre chicche

Se io dovevano usarlo (ad esempio perché voglio l'accesso a Google+), cosa accadrebbe agli utenti il ​​cui dispositivo non ha Google Play? (Nook, Cyanogenmod, China Mobile, vecchi dispositivi, ecc.)

DOMANDA: La mia app diventerà incompatibile con tali dispositivi? Sarà visualizzato come compatibile ma poi si bloccherà, o non funzionerà?
C'è una buona pratica da tenere a mente quando si utilizzano i servizi di Google Play?

risposta

23

Se la funzione di Google Play Services è essenziale per la tua app, non ci sarebbe modo di far funzionare la tua app.

È possibile controllare se i servizi sono abilitati da dentro la vostra applicazione con GooglePlayServicesUtil.isGooglePlayServicesAvailable(android.content.Context)
che restituisce ConnectionResult.SUCCESS se Play Services è disponibile.

È ora possibile provare a convincere l'utente a installarlo (se possibile) o disabilitare la funzionalità che utilizza il servizio.

Poiché Google Play Services non è una funzione dichiarata nel manifest, l'app dovrebbe installare correttamente su qualsiasi dispositivo, ma potrebbe bloccarsi in seguito se si stanno utilizzando le API senza verificare se sono disponibili.

È possibile provare il comportamento con l'emulatore. Basta creare un AVD senza le API di Google e inserire la tua app su di esso.

+1

Questo metodo è stato spostato e deprecato. Vedi @ la risposta di Maxi sotto per il nuovo metodo: http://stackoverflow.com/a/34943703/1139908 – karl

-2

Se si sta in qualche modo tenuti a utilizzare Play Services, o se si mantiene un'applicazione legacy che effettua chiamate a Play Services, quindi mi sento di raccomandare questa strategia:

  1. All'avvio dell'applicazione, verificare se Play Services è disponibili o meno
  2. Se non disponibile, reindirizzare Play Services chiamate a NOGAPP

NOGAPP è un'implementazione open source di Google Play Services.
Manca molte funzionalità, ma è in fase di sviluppo attivo. Molte funzionalità sono ancora stub.

Per i servizi di localizzazione, è disponibile il LOST, un sostitutivo per le API di posizione dei servizi di Google Play.

L'app potrebbe non funzionare perfettamente, ma almeno è meglio che bloccarsi.

Naturalmente, il meglio è NON utilizzare i servizi di Google Play, fin dall'inizio.

22
GooglePlayServicesUtil.isGooglePlayServicesAvailable(android.content.Context) 

obsoleto!

Usa:

GoogleApiAvailability api = GoogleApiAvailability.getInstance(); 
     int code = api.isGooglePlayServicesAvailable(activity); 
     if (code == ConnectionResult.SUCCESS) { 
      // Do Your Stuff Here 
     } else { 
      AlertDialog alertDialog = 
       new AlertDialog.Builder(activity, R.style.AppCompatAlertDialogStyle).setMessage(
         "You need to download Google Play Services in order to use this part of the application") 
         .create(); 
      alertDialog.show(); 
     } 
+0

Non c'è bisogno di creare la propria finestra di dialogo, utilizzare GoogleApiAvailability.getInstance(). GetErrorDialog (activity, code, 0) .show (); – Kyle

Problemi correlati