public SamsungFingerprintImplementation()
 {
     try
     {
         var spass = new Spass();
         spass.Initialize(Application.Context);
         _hasNoFingerPrintSensor = !spass.IsFeatureEnabled(Spass.DeviceFingerprint);
         _spassFingerprint = new SpassFingerprint(Application.Context);
         IsCompatible = true;
     }
     catch (SecurityException ex)
     {
         Log.Warn(nameof(SamsungFingerprintImplementation), ex);
         _hasNoPermission = true;
     }
     catch (Exception ex)
     {
         Log.Warn(nameof(SamsungFingerprintImplementation), ex);
         _hasNoApi = true;
     }
 }
        public SamsungBiometricsImpl() {
            //if (Android.OS.Build.VERSION == Android.OS.BuildVersionCodes.M)
            var spass = new Spass();

            try {
                spass.Initialize(Application.Context);
                if (spass.IsFeatureEnabled(Spass.DeviceFingerprint)) {
                    this.fingerprint = new SpassFingerprint(Application.Context);
                    this.available = this.fingerprint.HasRegisteredFinger;
                }
            }
            catch (SsdkUnsupportedException ex) {
                Debug.WriteLine("Error Initializing: " + ex);
            }
            catch (UnsupportedOperationException ex) {
                Debug.WriteLine("Fingerprint Not Supported: " + ex);
            }
            catch (SecurityException ex) {
                Debug.WriteLine("Invalid App Permissions: " + ex);
                //<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY" />
            }
        }
        private async Task<bool> StartIdentify(SpassFingerprint.IIdentifyListener listener)
        {
            // TODO: remove retry and delay, if samsung fixes the library 
            for (var i = 0; i < 5; i++)
            {
                try
                {
                    _spassFingerprint.StartIdentify(listener);
                    return true;
                }
                catch (IllegalStateException ex)
                {
                    Log.Warn(nameof(SamsungFingerprintImplementation), ex);
                    await Task.Delay(100);
                }
                catch (Exception ex)
                {
                    Log.Warn(nameof(SamsungFingerprintImplementation), ex);
                    return false;
                }
            }

            return false;
        }