Reconocimiento de huella digital con Samsung Pass SDK

El SDK de Samgung Pass nos permite usar funciones de reconocimiento de huellas digitales en nuestras propias aplicaciones. Con Pass SDK, podemos proporcionar seguridad adicional al identificar si el usuario actual es el propietario del dispositivo.

Para empezar, vamos a la página principal del SDK. Desde aquí descargar Pass SDK que contiene librerías, ejemplos y documentación)

Para empezar a trabajar con Samsung Pass lo primero que hay que hacer es importar los archivos .jar a la carpeta “libs” de nuestro proyecto: pass-v[x.y.z].jar y sdk-v[x.y.z].jar

Una vez añadidas las librerías ya podemos utilizar todas las funciones del SDK de Pass.

huella samsung pass sdk

 

Ejemplo de código de Samsung Pass SDK

Y aquí va un ejemplo sencillo de código para una identificación por huella al pulsar un botón de la aplicación:


    /**
     * API de huella
     */
    private SpassFingerprint spassFingerprint;

    /**
     * Al pulsar el botón se mostrará el diálogo de autenticación
     */
    private Button identify;

    /**
     * Indica si la identificación por huella está activada
     */
    private boolean isFeatureEnabledFingerprint;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Al pulsar botón, iniciar proceso de identificación con huella
        identify = (Button) findViewById(R.id.identify);
        identify.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startIdentifyDialog();
            }
        });

        // Inicializar api
        initSpass();
    }

Donde el método initSpass() inicializaría el API de Samsung Pass en caso de estar disponible del siguiente modo:

    /**
     * Inicializa samsung pass
     */
    private void initSpass() {
        // inicializar Samsung Pass o error
        Spass spass = new Spass();
        try {
            spass.initialize(getApplicationContext());
            isFeatureEnabledFingerprint = spass.isFeatureEnabled(Spass.DEVICE_FINGERPRINT);
            if (isFeatureEnabledFingerprint) {
                spassFingerprint = new SpassFingerprint(getApplicationContext());
            } else {
                Toast.makeText(this, "Fingerprint not enabled", Toast.LENGTH_SHORT).show();
                identify.setEnabled(false);
            }
        } catch (SsdkUnsupportedException | UnsupportedOperationException e) {
            Log.e("Spass", "Error on initSpass()", e);
            Toast.makeText(this, "Error initializating spass", Toast.LENGTH_SHORT).show();
            identify.setEnabled(false);
        }
    }    

Y al pulsar el botón se ejecutaría el método startIdentifyDialog, que sería como se muestra a continuación:

    /**
     * Muestra diálogo de identificación
     */
    private void startIdentifyDialog() {
        if (isFeatureEnabledFingerprint) {
            try {
                if (spassFingerprint != null) {
                    spassFingerprint.startIdentifyWithDialog(getApplicationContext(),
                            new SpassFingerprint.IdentifyListener() {
                        @Override
                        public void onFinished(int eventStatus) {
                            switch (eventStatus) {
                                // Identificación correcta
                                case SpassFingerprint.STATUS_AUTHENTIFICATION_SUCCESS:
                                case SpassFingerprint.STATUS_AUTHENTIFICATION_PASSWORD_SUCCESS:
                                    Toast.makeText(MainActivity.this, "Success authentication!", Toast.LENGTH_SHORT).show();
                                    break;
                                // Cancelado por el usuario
                                case SpassFingerprint.STATUS_USER_CANCELLED:
                                case SpassFingerprint.STATUS_USER_CANCELLED_BY_TOUCH_OUTSIDE:
                                    Log.d("startIdentifyDialog", "cancelled by the user");
                                    break;
                                // Error
                                default:
                                    Toast.makeText(MainActivity.this, "Error identificating you with spass", Toast.LENGTH_SHORT).show();
                                    break;
                            }
                        }

                        @Override
                        public void onReady() {}

                        @Override
                        public void onStarted() {}

                        @Override
                        public void onCompleted() {}
                    }, false);
                }
            } catch (IllegalStateException e) {
                Log.e("Spass", "Error on startIdentifyDialog()", e);
                Toast.makeText(this, "Error identificating you with spass", Toast.LENGTH_SHORT).show();
            }
        }
    }

Ejecutamos y ya tendríamos listo el reconocimiento de huellas en nuestra app.

Autor: Javier Hernández

Tengo 27 años y soy Ingeniero Técnico en Informática de Gestión por la Universidad Politécnica de Valencia. Mis ramas principales son la programación de apps Android y el diseño y desarrollo Web. Actualmente también programo widgets para panel Edge, así como aplicaciones y Watch Faces para Samsung Gear.

Share This Post On

Deja un comentario

A %d blogueros les gusta esto:
Bitnami