PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Savoir si authentification biométrique est disponible
Savoir si authentification biométrique est disponible
Débuté par Matthieu, 29 jan. 2019 14:01 - 6 réponses
Posté le 29 janvier 2019 - 14:01
Bonjour,

J'utilise VérifieIdentitéUtilisateur qui fonctionne très bien mais j'aimerais bien savoir avant si cette possibilité (face id ou touch id) existe sur le téléphone.

Une idée ?

Merci
Matthieu
Posté le 06 février 2019 - 11:49
Bonjour.

J'ai exactement la même interrogation cette semaine.

Je lançais automatiquement VérifieIdentitéUtilisateur à l'ouverture d'une fenêtre et j'ai des testeurs qui m'ont fait remonté un plantage de l'application car ils n'avaient pas de lecteur d'empreinte.
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 07 février 2019 - 09:10
Bonjour

S'il ne s'agit pas d'une erreur fatale avec crash de l'appli, cela peut se traiter par une gestion d'erreurs.

--
Cordialement
François
Posté le 07 février 2019 - 10:57
Dans la callback de VérifieIdentitéUtilisateur il y a un code d'erreur qui indique si capteur d'empreinte n'est pas présent.
Posté le 08 février 2019 - 11:01
Bonjour a tous,
Essayer cela :
SI PAS EnModeTest() ALORS
sMonboolen est une chaîne
sMonboolen = CapteurempreinteDetect()
Info (sMonboolen)
SINON
Info ("Cette fonctionnalité n'est disponible que sur l'appareil")
FIN

import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.widget.Toast;
import android.content.SharedPreferences;

import android.app.KeyguardManager;

import android.content.pm.PackageManager;

import android.hardware.fingerprint.FingerprintManager;

import android.Manifest;
import android.os.Build;
import android.os.Bundle;
import android.security.keystore.KeyGenParameterSpec;
import android.security.keystore.KeyPermanentlyInvalidatedException;
import android.security.keystore.KeyProperties;
import android.support.v7.app.AppCompatActivity;
import android.support.v4.app.ActivityCompat;
import android.widget.TextView;
import java.io.IOException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;

public static String CapteurempreinteDetect()
{
FingerprintManager fingerprintManager;
KeyguardManager keyguardManager;

//Récupération du context de l'application
Context ctx= getApplicationContext();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
keyguardManager =
(KeyguardManager) ctx.getSystemService(ctx.KEYGUARD_SERVICE);
fingerprintManager =
(FingerprintManager) ctx.getSystemService(ctx.FINGERPRINT_SERVICE);
if (!fingerprintManager.isHardwareDetected()) {
return "Your device doesn't support fingerprint authentication";
}
if (ActivityCompat.checkSelfPermission(ctx, Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) {
return "Please enable the fingerprint permission";
}
if (!fingerprintManager.hasEnrolledFingerprints()) {
return "No fingerprint configured. Please register at least one fingerprint in your device's Settings";
}
if (!keyguardManager.isKeyguardSecure()) {
return "Please enable lockscreen security in your device's Settings";
} else {
return "Vraie" ; 
}
}
return "Faux";
}

Certains import peuvent ne pas être nécessaire.
Posté le 08 février 2019 - 11:01
Bonjour a tous,
Essayer cela :
SI PAS EnModeTest() ALORS
sMonboolen est une chaîne
sMonboolen = CapteurempreinteDetect()
Info (sMonboolen)
SINON
Info ("Cette fonctionnalité n'est disponible que sur l'appareil")
FIN

import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.widget.Toast;
import android.content.SharedPreferences;

import android.app.KeyguardManager;

import android.content.pm.PackageManager;

import android.hardware.fingerprint.FingerprintManager;

import android.Manifest;
import android.os.Build;
import android.os.Bundle;
import android.security.keystore.KeyGenParameterSpec;
import android.security.keystore.KeyPermanentlyInvalidatedException;
import android.security.keystore.KeyProperties;
import android.support.v7.app.AppCompatActivity;
import android.support.v4.app.ActivityCompat;
import android.widget.TextView;
import java.io.IOException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;

public static String CapteurempreinteDetect()
{
FingerprintManager fingerprintManager;
KeyguardManager keyguardManager;

//Récupération du context de l'application
Context ctx= getApplicationContext();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
keyguardManager =
(KeyguardManager) ctx.getSystemService(ctx.KEYGUARD_SERVICE);
fingerprintManager =
(FingerprintManager) ctx.getSystemService(ctx.FINGERPRINT_SERVICE);
if (!fingerprintManager.isHardwareDetected()) {
return "Your device doesn't support fingerprint authentication";
}
if (ActivityCompat.checkSelfPermission(ctx, Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) {
return "Please enable the fingerprint permission";
}
if (!fingerprintManager.hasEnrolledFingerprints()) {
return "No fingerprint configured. Please register at least one fingerprint in your device's Settings";
}
if (!keyguardManager.isKeyguardSecure()) {
return "Please enable lockscreen security in your device's Settings";
} else {
return "Vraie" ; 
}
}
return "Faux";
}

Certains import peuvent ne pas être nécessaire.
Posté le 05 mars 2019 - 18:42
Merci Popoy, je vais essayer.
Ca ne concerne qu'Android et que le lecteur d'empreinte, je suis aussi intéressé par Face Id sur iPhone.
J'ai fais une requête au support technique, ils m'ont répondu que ce n'était pas implémenté mais qu'ils le notaient comme suggestion