アンドロイド6.0 APIを使用して指紋認証を行っています。 私の要件は、現在のデバイスがフィンガープリント認証をサポートしている場合、フィンガープリント認証を行います。それ以外の場合、通常の方法でアプリケーションにログインします。アンドロイドでの指紋認証のデバイス互換性を確認する方法
だから、アンドロイドでの指紋認証のデバイス互換性をチェックする方法を教えてください。
ありがとうございます。
アンドロイド6.0 APIを使用して指紋認証を行っています。 私の要件は、現在のデバイスがフィンガープリント認証をサポートしている場合、フィンガープリント認証を行います。それ以外の場合、通常の方法でアプリケーションにログインします。アンドロイドでの指紋認証のデバイス互換性を確認する方法
だから、アンドロイドでの指紋認証のデバイス互換性をチェックする方法を教えてください。
ありがとうございます。
FingerprintManager
クラスのメソッドisHardwareDetected
を使用する必要があります。
指紋ハードウェアが存在し、機能しているかどうかを判断します。戻り値 ハードウェアが存在し、機能している場合はtrueを返し、それ以外の場合はfalseを返します。
// Check if we're running on Android 6.0 (M) or higher
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//Fingerprint API only available on from Android 6.0 (M)
FingerprintManager fingerprintManager = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE);
if (!fingerprintManager.isHardwareDetected()) {
// Device doesn't support fingerprint authentication
} else if (!fingerprintManager.hasEnrolledFingerprints()) {
// User hasn't enrolled any fingerprints to authenticate with
} else {
// Everything is ready for fingerprint authentication
}
}
AndroidManifestに指紋の機能にアクセスする権限を追加することを忘れないでください:
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
サポートライブラリ
を使用すると、Build.VERSIONをチェックしたくない場合サポートライブラリでAndroid 6.0より下のデバイスを確認することもできます
は、依存関係を追加します。
compile "com.android.support:support-v4:23.0.0"
そして、このようFingerprintManagerCompat
クラスを使用します。
FingerprintManagerCompat fingerprintManagerCompat = FingerprintManagerCompat.from(context);
if (!fingerprintManagerCompat.isHardwareDetected()) {
// Device doesn't support fingerprint authentication
} else if (!fingerprintManagerCompat.hasEnrolledFingerprints()) {
// User hasn't enrolled any fingerprints to authenticate with
} else {
// Everything is ready for fingerprint authentication
}
だけLaurentYの答えにフォローアップ。 指紋スキャナにアクセスするためのアクセス許可が必要です。そしてそれのために、これをマニフェストに追加する必要があります。
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
この方法は、すべてのAndroidのバージョンのための作品とも許可
private boolean isSensorAvialable() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
return ActivityCompat.checkSelfPermission(AppContext, Manifest.permission.USE_FINGERPRINT) == PackageManager.PERMISSION_GRANTED &&
AppContext.getSystemService(FingerprintManager.class).isHardwareDetected();
} else {
return FingerprintManagerCompat.from(AppContext).isHardwareDetected();
}
}
をチェックし、ハードウェアが見つからない場合にはplaystoreに記載されたばかりのアプリケーションを防ぐ方法かとの互換性はありませんがあります応用? – Nirav
新しい質問ですので、質問を追加して回答します – LaurentY
保存された私の日..すごい投稿@LaurentY –