gpt4 book ai didi

Android:Google Drive onActivityResult() 获取结果代码 0 (RESULT_CANCELED)

转载 作者:行者123 更新时间:2023-11-29 23:07:50 29 4
gpt4 key购买 nike

我一直在搜索 Google 文档和示例代码以及 Stack Overflow 以寻找解决方案,虽然我看到很多人遇到相同的症状,但我没有找到任何对我的具体情况有帮助的东西.

基本上我正在尝试为 Google Drive REST API 执行身份验证工作流,当我到达 Google 帐户选择页面时,当它返回我的调用 Activity 时,我总是看到 RESULT_CANCELED 结果(即 0)而不是 RESULT_OK(即 -1),无论选择什么帐户。

我已检查以确保在 Google 开发者控制台上正确设置了凭据 - 并且他们之前通过现已不存在的 CloudRail 库进行身份验证。 (据我所知,现在使用 Google 登录,您提供任何客户端 ID 等:当它与您的包名称匹配时,所有这些都由 Google 处理。)

这是我的身份验证请求:

    GoogleSignInOptions signInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestScopes(new Scope(DriveScopes.DRIVE))
.build();
mSignInClient = GoogleSignIn.getClient(activity, signInOptions);

这是 Activity 的 onActivityResult():

@Override
public void onActivityResult(int requestCode, int resultCode, Intent resultData) {
switch (requestCode) {
case REQUEST_GOOGLE_SIGN_IN:
if (resultCode == Activity.RESULT_OK && resultData != null) {
/*** NEVER GET HERE ***/
handleSignInResult(this, resultData);
}
else {
/*** ALWAYS GET HERE ***/
Log.e(TAG, String.format("Unable to complete Google sign-in (resultCode: %d)", resultCode));
}
}
break;
}
super.onActivityResult(requestCode, resultCode, resultData);
}

我假设这是我做了一些明显愚蠢和错误的事情的案例——我希望只是输入问题就能帮助我弄清楚它是什么,但这还没有发生。

最佳答案

如我所料,我做错的事情相对简单。因此,对于遇到同样问题并在寻找解决方案时跨过我 body 的任何人,以下是我的发现:

虽然我确实在 Google 开发者控制台中正确设置了凭据,并按照文档的指示从 mykeystore.keystore 生成了我的包名称和 SHA1,但我错过的是 Android Studio 默认情况下不使用 mykeystore.keystore 签署调试版本。相反,它使用自己提供的 debug.keystore。

因此要做的事情是使用您的包名称和 Android Studio 的 debug.keystore 中的 SHA1 而不是自己的创建一个新的 OAuth 客户端 ID。 (您可以在您的系统上搜索 debug.keystore,或者运行 Gradle“signingReport”任务并从那里获取它。)

希望对某人有所帮助。

关于Android:Google Drive onActivityResult() 获取结果代码 0 (RESULT_CANCELED),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56350913/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com