問題タブ [android-biometric]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android Q を搭載した Samsung Galaxy M01 デバイスで生体認証が検出されませんか?
以下は、生体認証機能を検出するための私のコードです
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
マニフェストファイルに追加し implementation 'androidx.biometric:biometric:1.0.1'
、gradleに追加しました
それでも私のコードは生体認証プロンプトを検出できません。モバイルで顔認識を有効にしましたが、アプリを開いたときに機能しません。BIOMETRIC_ERROR_HW_UNAVAILABLE
私のコードでは大文字と小文字が区別されます。
android - BiometricPrompt を CryptoObject で使用して、復号化と暗号化の両方の KeyStore アクセスを同時に取得する方法は?
問題の説明: BiometricPrompt 認証を使用して Android KeyStore にアクセスすると、KeyStore に対して読み取りまたは書き込み操作を実行する必要があるたびに BiometricPrompt が表示されます。iOS KeyChainで行われるのと同様の方法で、一度だけ認証し、キーストア内のデータを必要に応じて操作するソリューションを探しています。
KeyStore params ビルダーで setUserAuthenticationRequired(true) を呼び出すことにより、アプリ API AuthRefreshToken を生体認証によって保護されたアプリケーション KeyStore に格納できるように、Android 用の生体認証を実装しました (以下を参照)。Google ( https://github.com/android/security-samples/tree/main/BiometricLoginKotlin ) や他の開発者の例に従い、ソリューションを正常に機能させました。私は現在、上記の問題を 2 日目の営業日で解決しようとしていますが、成功せず、CryptoObject なしで BiometricPrompt を使用することを検討していますが、これは大きな失望です。おそらく を設定することで、一定期間一度だけ認証する方法があるparamsBuilder.setUserAuthenticationValidityDurationSeconds(30)
と思いますが、意図した結果を得ることができません。
KeyStore にアクセスして API AuthRefreshToken を読み取るには、次のコードを使用します。
すべて正常に動作し、復号化されたデータを取得します。ただし、AuthRefreshToken を使用してアプリ API で認証を行うたびに、トークンが変更されるため、すぐにそれを KeyStore に保存し直す必要があります。これが発生した場合、BiometricPrompt を再度表示する以下のコードを使用します。これにより、UI フローで BiometricPrompt が 2 回表示されます。
BiometricPrompt を複数回呼び出すことなく、たとえば 1 分以上の間隔で KeyStore への完全な読み取り/書き込みアクセスができるように、BiometricPrompt で一度に認証するにはどうすればよいですか?
さまざまなアプローチを試し、暗号を再作成するか、別の目的で再初期化しようとしましたが、これらすべておよび同様の試みで、Javax.Crypto.IllegalBlockSizeException
「キーユーザーが認証されていません」というメッセージが表示されます
キーストアの初期化は次のとおりです。
android - デバイスがピンロックまたはフェイスロックの指紋ロックで保護されていることを検出しますか?
私のアプリケーションには、デバイスのセキュリティに依存するログイン用のユーザー認証 (ピン/パターン、指紋ロック解除を含む) が含まれています。Biometric Manager を使用して、デバイスがBiometricManagerを使用して指紋をサポートしているかどうかを検出し、 isDeviceSecure()を使用してデバイスが保護されているかどうかを確認しています。どのモードでモバイル デバイスが保護されているかを検出する必要があります (ピン/パターンを使用したピン/パターン、指紋を使用したピン/パターン、顔認証を使用したピン/パターン、または 3 つのモードすべて (ピン/パターン、顔ロック解除、指紋))。