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

onActivityResult始终返回未授权,Google Drive API登录失败原因咨询

排查Google Drive API授权失败进入else分支的常见原因

我来帮你梳理下几个大概率导致这个问题的原因,都是我在处理同类问题时碰到过的典型情况:

  • OAuth客户端配置不匹配
    先去Google Cloud Console核对这两个关键信息:

    • 应用的包名必须和你在控制台里填写的完全一致,大小写都不能错;
    • 签名指纹要对应你当前测试用的构建版本——比如你用debug包测试,就得把debug keystore的SHA-1指纹填进去,别用release的指纹。另外别忘了在控制台里启用Google Drive API,没启用的话所有请求都会被拒。
  • 权限范围设置错误
    检查你请求的Drive权限范围是否正确:

    • 如果只是读写特定文件,用https://www.googleapis.com/auth/drive.file就够了;要是需要访问所有文件,得用对应的范围,但这类敏感权限可能需要Google审核,测试阶段建议先用受限范围。
    • 确保在构建GoogleSignInOptions时,通过requestScopes()正确添加了Drive的权限,漏加的话授权肯定过不了。
  • ActivityResult处理逻辑有误
    仔细检查你的结果判断代码:

    • 如果你用的是旧版onActivityResult,确认你是先判断返回码为RESULT_OK,再去解析GoogleSignInResult的状态;别搞反了判断顺序,或者把返回码写错。
    • 要是用新版Activity Result API,得确认注册的Contract是对应Google登录授权的,别和其他功能的Contract搞混。
  • 授权缓存冲突
    有时候旧的授权缓存会干扰新的请求:

    • 可以先清除应用的缓存和数据,或者在代码里调用GoogleSignInClient.signOut()后重新发起授权;
    • 如果之前用其他Google账号登录过,也可能残留旧的授权信息,导致判断出错。
  • 设备环境问题

    • 确保设备上的Google Play服务是最新版本,旧版本可能不支持新的授权流程;
    • 有些定制ROM会限制Google服务的权限,建议在原生Android设备上测试,排除系统层面的干扰。
  • 代码细节遗漏
    再核对下构建客户端的代码:

    • 确认GoogleSignInClient是用添加了Drive权限的GoogleSignInOptions实例创建的,别不小心用了默认的配置;
    • 检查发起授权请求的代码,有没有正确调用startActivityForResult(或新版的launch方法),参数有没有传错。

内容的提问来源于stack exchange,提问作者Gastón Saillán

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:11:33