viernes, abril 14, 2017

Verificar Google Play Services

Para que nuestra aplicación pueda ejecutarse si necesitamos Google Play Services, tenemos que hacer la verificación previa.

Esto lo podemos lograr fácilmente agregando las siguientes líneas de código en nuestra actividad de lanzamiento o Splash Screen si es que la tenemos sino, en la primera actividad de nuestra aplicación.

Creamos el método checkPlayServices() con  el código

errorDialog es una variable global de la actividad.

Dialog errorDialog;

private boolean checkPlayServices() {

    GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();

    int resultCode = googleApiAvailability.isGooglePlayServicesAvailable(this);

    if (resultCode != ConnectionResult.SUCCESS) {
       if (googleApiAvailability.isUserResolvableError(resultCode)) {

       if (errorDialog == null) {
           errorDialog = googleApiAvailability.getErrorDialog(this, resultCode, 2404);
           errorDialog.setCancelable(false);
       }

       if (!errorDialog.isShowing())
           errorDialog.show();
        }
     }

    return resultCode == ConnectionResult.SUCCESS;
}


Y luego, en el método onResume(), hacemos la llamada al método checkPlayServices()

@Override
protected void onResume() {
    super.onResume();
    if (checkPlayServices()) {
        startApp();
    }
}


¿Por qué en onResume() y no en onCreate()? Sencillamente porque en onCreate() la llamada se va a ejecutar una sola vez; onResume() llamará checkPlayServices() hasta que actualicemos Google Play Service o cerremos la aplicación, evitando así que iniciemos nuestra app sin la versión más reciente de estos servicios de Google.