Android: Comprobar que el dispositivo tiene cuenta Google

Si nuestra aplicación requiere que el dispositivo tenga vinculada una cuenta Google, este código resultará realmente útil. Lo que hace es comprobar si el dispositivo tiene una cuenta Google, si el resultado es “true” dejaremos que el usuario pase esta pequeña frontera para poder utilizar nuestra app, si por lo contrario es “false”, informaremos al usuario y lo redirigimos al market para que pueda crear o vincular una cuenta Google.

Para empezar necesitamos agregar al “AndroidManifest.xml” de nuestro proyecto un permiso para que nuestra aplicación pueda obtener información sobre las cuentas que tiene vinculadas el dispositivo.<uses-permissions name=”android.permission.GET_ACCOUNTS” />

La función encargada de comprobar si el dispositivo tiene una cuenta Google la pondremos en la activity desde la que realizaremos la comprobación.

private boolean tieneCuentaGoogle(Context context){

        AccountManager accountManager = AccountManager.get(context);

        Account[] arrayAccounts = accountManager.getAccountsByType(“com.google”);

        return arrayAccounts.length >= 1;

}

En el onCreate de la activity en la que queremos realizar la comprobación (debería ser la inicial), añadimos la llamada a la función encargada de comprobar si existe alguna cuenta de Google en el dispositivo.

//Llamada a la función, devuelve true si el dispositivo tiene cuenta Google

boolean cuentaGoogle = tieneCuentaGoogle(MiActivity.this);

if (!cuentaGoogle){

        showDialog();//Mostramos Dialog

}else{

        cargar();//Continuamos

}

Como podemos ver le pasamos un parámetro a la función. Este parámetro no es mas que el contexto en el que se hace la comprobación, es decir el nombre de nuestra activity y el “.this” para especificarle que es la misma activity en la que nos encontramos. Además la función nos devolverá un boleano que analizaremos su valor para decidir si realizamos una acción u otra. Si el dispositivo tiene cuenta llamaremos a el método “cargar();” (por ejemplo),  si no tiene llamaremos a un método que informará al usuario del problema  y al apretar sobre el botón del Dialog redirigiremos al market para que el usuario pueda crear o vincular el dispositivo con una cuenta Google.

private void showDialog() {

        Dialog dialog = new AlertDialog.Builder(MiActivity.this)

                .setTitle(“Error”) //Título

                .setMessage(“Tu dispositivo no tiene cuenta Google.”) //Mensaje

                .setPositiveButton(R.string.optAcceptar,

                        new DialogInterface.OnClickListener() { //Botón

                            @Override

                            public void onClick(DialogInterface dialog,int which) {

                             //Redirigimos al usuario al market

                             Intent intent = new Intent(“android.intent.action.VIEW”,                            Uri.parse(“https://play.google.com“));

                                startActivity(intent);

                            }

                        }).create();

        dialog.show(); //Mostramos el Dialog

}

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 )

Google+ photo

Estás comentando usando tu cuenta de Google+. 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 )

w

Conectando a %s