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

Expo Local Authentication在Android设备上跳过面部认证问题求助

解决方案:Expo Local Authentication在Android上跳过面部识别的问题

可能原因

  1. Android系统默认优先使用指纹识别,面部识别的优先级未被设为最高
  2. 未在authenticateAsync中明确指定允许的生物识别类型
  3. Expo版本或插件版本存在兼容性问题
  4. 设备面部识别注册不完整

具体解决步骤

  • 调整系统生物识别优先级
    进入Android设备的「设置」-「生物识别和密码」,将面部识别设置为默认的生物验证方式(部分设备需在「生物识别优先级」选项中调整)。

  • 明确指定允许的认证类型
    在调用authenticateAsync时,通过allowedAuthenticationTypes参数显式包含面部识别类型,强制系统尝试面部认证:

    import * as LocalAuthentication from 'expo-local-authentication';
    
    const authenticate = async () => {
      const result = await LocalAuthentication.authenticateAsync({
        promptMessage: '请完成生物识别验证',
        allowedAuthenticationTypes: [
          LocalAuthentication.AuthenticationType.FINGERPRINT,
          LocalAuthentication.AuthenticationType.FACE_ID
        ],
      });
      console.log(result);
    };
    
  • 检查并补充Android权限配置
    在app.config.js中确认已添加Android生物识别权限(Expo插件通常会自动添加,手动确认更稳妥):

    {
      "expo": {
        "android": {
          "permissions": ["USE_BIOMETRIC"]
        },
        "plugins": [
          [
            "expo-local-authentication",
            {
              "faceIDPermission": "Allow $(PRODUCT_NAME) to use Face ID."
            }
          ]
        ]
      }
    }
    
  • 验证面部识别注册状态
    进入设备生物识别设置,删除已注册的面部信息后重新录入,确保面部识别功能在系统层面可正常使用。

  • 尝试升级Expo及插件版本
    Expo 47属于较旧版本,部分Android生物识别适配问题在后续版本中已修复。可尝试升级到兼容的新版本(如Expo 49 + expo-local-authentication ~14.0.1),升级前请备份项目并确认依赖兼容性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:15:14