Android: Comprobar cuenta Google y Google Play Services

Cuando se utilizan “APIS” de Google es necesario que el dispositivo este asociado a una cuenta y que tenga descargados los Google Play Services e incluso actualizados. Para verificar que esta cuenta existe ha de haber una comprobación previa, sino nuestra app no funcionará correctamente. Antes de poder comprobar esto debemos dar permisos en el “AndroidManifest.xml” para poder acceder a la información de las cuentas del dispositivo:

<uses-permission android:name="android.permission.GET_ACCOUNTS" />

Una vez tenemos los permisos, esta será la función que compruebe que existe una cuenta Google y devuelva un booleano:

 public static boolean dispositivoTieneCuentaGoogle(){
     AccountManager accMan = AccountManager.get(getApplicationContext());
     Account[] accArray = accMan.getAccountsByType("com.google");
     return accArray.length >= 1;
 }

Otra función muy útil es la que comprueba que el dispositivo cuente con Google Play Services y que estén en la versión mas reciente. Devuelve 1 si no tiene los servicios, y 2 si no están actualizados a la última versión:

 public static int tieneGooglePlayServices(){
    int valor = 0;
    int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
    if(status == ConnectionResult.SERVICE_MISSING) {//Hay que descargar
       valor = 1;
    }else if(status == ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED){//Hay que actualizar
       valor = 2;
    }
 return valor;
 }

Tras realizar las comprobaciones es probable que si el dispositivo requiere de una cuenta, descarga o actualización queramos redirigir al usuario a la “Play Store” para guiarlo y que pueda completar la acción necesaria para utilizar nuestra app. Esta función se encarga de mostrar un dialog informando al usuario, y lo redirige al “market”.

 private static void MostrarDialog(String tipo) {

    if(tipo.equals("Google")) {
       Dialog dialog = new AlertDialog.Builder(act)
       .setMessage("Este dispositivo no esta asociado a una cuenta Google.")
       .setTitle("Cuenta Google")
       .setPositiveButton(R.string.optAcceptar,
       new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
             //Redirigimos al market
             Intent intent = new Intent("android.intent.action.VIEW", Uri.parse("https://play.google.com"));
             act.startActivity(intent);
          }
       }).create();

       dialog.show();

    }else if (tipo.equals("Descarga Google play services")){

       Dialog dialog = new AlertDialog.Builder(act)
       .setMessage("Este dispositivo no cuenta con los servicios de Google.")
       .setTitle("Google Play Services")
       .setPositiveButton(R.string.optAcceptar,
       new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
             //Redirigimos al market
             act.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.google.android.gms")));
          }
       }).create();

       dialog.show();

    }else if(tipo.equals("Actualiza Google play services")){

       Dialog dialog = new AlertDialog.Builder(act)
       .setMessage("Debes actualizar los servicios de Google a la última versión.")
       .setTitle("Google Play Services")
       .setPositiveButton(R.string.optAcceptar,
       new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
             //Redirigimos al market
             act.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.google.android.gms")));
          }
       }).create();

       dialog.show();
    }
 }

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s