You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 10及以下版本仅展示设备凭证认证提示的实现方案咨询

适配方案

直接按系统版本分路处理即可,覆盖绝大多数场景:

版本分路实现逻辑

  • Android 11(API 30)及以上:直接用你当前使用的biometric库原生能力,设置setAllowedAuthenticators(DEVICE_CREDENTIAL)即可,官方原生支持仅展示设备凭证选项,不会触发生物识别。
  • Android 10(API 29)及以下:借助KeyguardManager的隐藏参数实现,该参数在原生ROM和绝大多数国产定制ROM中都可正常生效,强制禁用生物识别选项,仅展示PIN/图案/密码输入界面。

对应实现代码示例:

// 设备凭证验证请求码,自行定义
val REQUEST_CODE_CREDENTIAL = 1001

when {
    Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> {
        val promptInfo = BiometricPrompt.PromptInfo.Builder()
            .setTitle("验证设备凭证")
            .setSubtitle("请输入设备PIN/图案/密码完成验证")
            .setConfirmationRequired(false)
            .setAllowedAuthenticators(DEVICE_CREDENTIAL)
            .build()
        biometricPrompt.authenticate(promptInfo)
    }
    else -> {
        val keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
        val credentialIntent = keyguardManager.createConfirmDeviceCredentialIntent(
            "验证设备凭证",
            "请输入设备PIN/图案/密码完成验证"
        )
        // 追加隐藏参数,强制关闭生物识别选项
        credentialIntent?.putExtra("com.android.server.locksettings.LOCKSCREEN_BIOMETRIC_DISABLED", true)
        if (credentialIntent != null) {
            startActivityForResult(credentialIntent, REQUEST_CODE_CREDENTIAL)
        } else {
            // 设备未设置任何密码的兜底逻辑,自行实现
        }
    }
}

// 后续在onActivityResult中接收验证结果即可
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == REQUEST_CODE_CREDENTIAL) {
        if (resultCode == Activity.RESULT_OK) {
            // 验证通过逻辑
        } else {
            // 验证失败/用户取消逻辑
        }
    }
}

极端兼容兜底方案

如果遇到极个别定制ROM不识别上述隐藏参数,可以采用临时禁用应用生物识别权限的方案:

  1. 调用验证前,先主动取消应用的生物识别权限
  2. 此时系统验证界面会自动 fallback 到仅展示设备凭证选项
  3. 验证流程结束后,根据业务需要决定是否引导用户重新授予生物识别权限

内容的提问来源于stack exchange,提问作者sneharc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 00:18:04