Android-BiometricManager 指紋登入

閱讀時間約 5 分鐘

主要物件:

BiometricManager

-檢查使用者是否有指紋辨識or是否設置密碼

BiometricPrompt

-初始化指紋視窗 並且 呼叫指紋視窗

BiometricPromptInfo

-指紋視窗的一些設定 Title , Description ...

Coding:

這邊會先建議建立 BiometricManager

主要是因為,他能判斷使用者是否有支持指紋或者設置Pin碼

  • BIOMETRIC_ERROR_NO_HARDWARE:沒有指紋
  • BIOMETRIC_ERROR_HW_UNAVAILABLE:沒有獲取到硬體
  • BIOMETRIC_ERROR_NONE_ENROLLED:沒有設定生物辨識
val biometricManager = BiometricManager.from(this) 
when (biometricManager.canAuthenticate()) {     
BiometricManager.BIOMETRIC_SUCCESS ->         
  Log.d("TAG", "App can authenticate using biometrics.")     
BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE ->        
   Log.e("TAG", "No biometric features available on this device.") 
BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE ->         
   Log.e("TAG", "Biometric features are currently unavailable.") 
BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED ->        
   Log.e("TAG", "The user hasn't associated any biometric credentials with their account.") 
}

建立 executors and callback(BiometricPrompt.AuthenticationCallback)

val executors = ContextCompat.getMainExecutor(this)
val callback = object : BiometricPrompt.AuthenticationCallback(){
override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
super.onAuthenticationError(errorCode, errString)
}

override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
super.onAuthenticationSucceeded(result)
finish()
startActivity(Intent(this@LoginActivity,MainActivity::class.java))
}

override fun onAuthenticationFailed() {
super.onAuthenticationFailed()
}
}
再來 建立 BiometricPromptInfo
val biometricPromptInfo = BiometricPrompt.PromptInfo.Builder()
.setTitle("Authentication")
.setDescription("")
.setDeviceCredentialAllowed(true)
.build()
最後 BiometricPrompt
biometricPrompt.authenticate ->呼叫指紋
biometricPrompt = BiometricPrompt(this, executors, callback) 
biometricPrompt.authenticate(biometricPromptInfo)
結果:
Result

GitHub:

1會員
2內容數
留言0
查看全部
發表第一個留言支持創作者!
LiHan的沙龍 的其他內容
你可能也想看
Android 版 Chrome 瀏覽器新增朗讀功能Android 版 Chrome 瀏覽器中新增了朗讀功能,可以將網頁文字轉換為語音並播放,方便用戶聆聽網頁內容,支援多國語言,包括繁/簡體中文、英文、日語、法文、德文等,還可調整播放速度和選擇語音。
Thumbnail
avatar
xiaoyao
2024-06-19
Android 版 Edge 瀏覽器正在測試擴充功能瀏覽器安裝擴充功能可以發揮本身以外的功能。微軟於 2023 年開始在 Android 版 Edge 上測試擴充功能,現階段可以取得官方推薦項目,無法前往 Chrome 或 Edge 商店安裝擴充功能。
Thumbnail
avatar
xiaoyao
2024-06-14
Android Wear (Wear OS by Google) 第一個智慧穿戴式手錶專案建立教學本課程學習如何建立 Android Wear (Wear OS by Google) 智慧穿戴式手錶專案的步驟。詳細說明了如何在 Android Studio 中建立 Wear OS 專案,包括選擇專案範本、設定專案屬性、建立手錶模擬器等步驟。最後,示範了運行專案並在模擬器上修改顯示文字的過程。
Thumbnail
avatar
HKT實驗室
2024-02-08
Android x Kotlin 實作課程:打造個人專屬計算機 APP EP7 程式碼優化重構程式碼本課程學習如何透過函數重構程式碼,提高可讀性、可維護性和重用性。以按鈕操作為例,將不同邏輯提取成函數,例如 allClear()、equalSign() 等,使程式碼更簡潔易懂,提升開發效率。
Thumbnail
avatar
HKT實驗室
2024-02-06
Android x Kotlin 實作課程:打造個人專屬計算機 APP EP6 計算機邏輯本課程學習如何實作處理加、減、乘和除按鈕等計算機相關邏輯。
Thumbnail
avatar
HKT實驗室
2024-02-01
ClubHouse Android終於來了,附Clubhouse APK下載連結!此次ClubHouse Android Beta版本將首先在美國發行,然後是其它英語國家,隨著用戶的反饋和軟體程式地不斷優化,再陸續在世界其它國家和地區開放。
Thumbnail
avatar
最科技 TechBesty
2021-05-10
記 android app 開啟錯誤 這次錯誤在Android 11 發生 去年12月底 , 有客戶反應 , 在 android 11 的手機 , 公司 app 開不起來 或開起來跑很久 , 空白頁..........登入畫面空白 之類奇怪的問題 一開始用 Android studio 的模擬器試 , 沒問題 看來需要實機了 於是就開始
Thumbnail
avatar
proof.K
2021-03-26