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

Flutter应用触发SMS时出现[SmsRetrieverHelper]错误17093求解决方案

解决Flutter中SMS验证码请求错误17093的方案

错误码17093是Google SafetyNet验证失败的典型表现,结合你使用的play-services-safetynet:18.0.1依赖,可按以下步骤排查修复:

核心修复步骤

  • 核对签名指纹与包名
    确认Google Cloud控制台中配置的应用SHA-1/SHA-256指纹、包名,和当前Flutter应用的debug/release构建版本完全匹配。debug构建默认用Android Studio的调试签名,release构建用你自己的发布签名,两者指纹不同,需分别配置。

  • 升级SafetyNet依赖
    旧版本的SafetyNet依赖存在兼容性问题,建议升级到最新稳定版:

    implementation 'com.google.android.gms:play-services-safetynet:18.0.2'
    
  • 启用SafetyNet API
    登录Google Cloud控制台,找到你的项目,搜索并启用SafetyNet API,未启用会直接导致验证请求失败。

  • 检查设备环境
    测试设备需能正常访问Google服务,网络稳定。部分地区需确保网络环境可连接Google服务器。

  • 验证SmsRetriever配置
    确认Android端配置完整:

    1. 在AndroidManifest.xml添加权限:
      <uses-permission android:name="android.permission.RECEIVE_SMS" />
      <uses-permission android:name="android.permission.READ_SMS" />
      
    2. 配置广播接收器监听短信回调:
      <receiver
          android:name=".SmsBroadcastReceiver"
          android:exported="true">
          <intent-filter>
              <action android:name="com.google.android.gms.auth.api.phone.SMS_RETRIEVED" />
          </intent-filter>
      </receiver>
      
  • 检查短信格式
    验证码短信必须包含应用的哈希字符串(通过SmsRetrieverHelper生成),格式示例:

    你的验证码:123456

    #ABCDEFGHIJKLMNOPQRSTUVWXYZ123456

    哈希字符串需和应用签名、包名对应,不能出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 14:45:59