当前位置: 首页 > 知识库问答 >
问题:

Android应用程序和Google Drive API在选择帐户后出现问题。为什么?

方心思
2023-03-14

我正在尝试了解如何在我的Android应用程序(使用Android Studio)中集成Google Drive API。我已经尝试了我在这里找到的示例应用程序(https://github.com/googleworkspace/android-samples/tree/master/drive/deprecation),但是在Google API控制台配置之后,当我选择帐户时,我的应用程序陷入了无限循环。为什么?问题在哪里?我也尝试了这个(https://youtu.be/5bSEIQYJzKs)教程,但我有同样的问题。这里我的build.gradle具体行:

implementation "androidx.multidex:multidex:2.0.1"
implementation 'com.google.android.gms:play-services-auth:19.0.0'
implementation ('com.google.apis:google-api-services-drive:v3-rev136-1.25.0')
            {
                exclude group: 'org.apache.httpcomponents'
            }
implementation ('com.google.api-client:google-api-client-android:1.26.0')
            {
                exclude group: 'org.apache.httpcomponents'
            }
implementation 'com.google.http-client:google-http-client-gson:1.26.0'

这是我使用的版本

compileSdkVersion 30
buildToolsVersion "30.0.3"

此代码行中存在问题,仅当我使用“.requestScopes(新范围(DriveScopes.DRIVE\u文件))”:如果我不使用。requestScopes(新作用域(DriveScopes.DRIVE\u文件))”,则代码工作正常。并且用户确实在

GoogleSignInOptions signInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestScopes(new Scope(DriveScopes.DRIVE_FILE))
                .requestEmail()
                .build();
GoogleSignInClient client= GoogleSignIn.getClient(this,signInOptions);
Intent i= client.getSignInIntent();
startActivityForResult(i,400);

(活动似乎从不返回任何值)。如果没有“. Request estScopes(new Scope(DriveScopes.DRIVE_FILE))”,身份验证请求就会成功。这里是我的Google控制台配置:客户端ID(抱歉,也许它会显示为链接,但stackOverflow告诉我我不能放img)和“.../auth/drive.file”是我在谷歌同意窗口中请求的授权,该窗口会显示给用户。我不知道这是否重要,但我使用真正的手机而不是Android Studio模拟器来测试我的应用程序。

共有2个答案

湛宏旷
2023-03-14

看看https://issuetracker.google.com/issues/178183308向谷歌报告问题的地方。

东门修文
2023-03-14

我刚刚解决了。对于所有遇到此问题的人:从Google API控制台中,从测试状态中删除同意屏幕并发布它。

 类似资料:
  • 所以我终于实现了用户选择在我尝试做oAuth2时使用哪个gmail帐户的能力……不幸的是,我有几个oAuth2问题没有得到回答…无论如何,在我单击登录按钮后,系统会提示我选择哪个gmail帐户的选项。但是,在我选择它并点击“确定”后,应用程序崩溃了。但是,我不确定为什么。 这是我的主要活动.java 这是返回的错误。 如果任何人有任何想法,这将是非常感谢。此外,我还需要对所选的gmail帐户进行o

  • > //这是我的java代码,firebase部分仅在以下条件下工作正常(requestCode==102){br>//imageuri=data.getData(); imageuri;public static final int PICK\u IMAGE=1@重写受保护的void onCreate(Bundle savedInstanceState){super.onCreate(saved

  • 我正在开发一个android应用程序,我想从我的应用程序中启动Google Drive应用程序。我可以使用以下代码成功完成此操作: 但是,我在手机上有多个帐户,我希望能够通过编程预先选择Google Drive的活动帐户,以便在启动时使用。我的应用程序已经具有Google登录凭据和存储在mCredential中的Google Drive scope。我已尝试将此添加到意图中: ...但是它不起作用

  • 我无法在Android Studio中运行我的第一个颤振应用程序 颤动医生-v Android Studio(控制台)

  • 背景资料 我在应用程序中使用Google Plus OAuth和Firebase。当用户点击登录按钮时,账户选择对话框出现,用户选择特定的账户并登录。 问题 假设用户在该设备中有两个帐户,A和b。最初,他选择帐户A登录,然后使用该应用程序,然后决定退出。现在他再次点击登录按钮,但是账户选择对话框没有出现,它自动使用先前选择的账户a登录。 我想要的 我希望用户每次都能看到帐户选择对话框,并让他们有机

  • 在尝试将我的Android应用程序转换为使用SSL在我的Android应用程序和Web服务器之间传输信息后,我遇到了一些问题。(套接字时间异常) 我从证书颁发机构 (CA) 购买了正 SSL 证书,并将我的服务器配置为正确使用它。我已经在我的Web浏览器中对其进行了测试,并且它工作正常。 现在我正在尝试修改我的android应用程序以使用https而不是超文本传输协议,但由于这是我自己第一次使用h