在Google Fit API上添加Scope时,Google不会登录



我正在尝试在我的API客户端上添加作用域。但是,当我添加任何作用域时,它不会让我登录。但是,如果我移除作用域,我就可以登录了。有人能帮我弄明白吗?

我正在使用Fitness API。

当只有.addApi(Fitness.API_HISTORY)时,它有效。但是当我尝试添加一个作用域时,它不会通过登录/认证屏幕。

谢谢!

编辑:我尝试了两种方法

1)我使用startResolutionForResult将身份验证留给健身api,在此期间logcat读取错误为SIGN_IN_REQUIRED(帐户弹出,但选择后什么都没有发生)。

2)当我通过不同的意图创建自定义签名流并在此api客户端中设置帐户时,它给了我错误SIGN_IN_FAILED。

在这两种情况下,当我删除作用域,它的工作

您可以查看这个示例。它指出,您需要有一个GoogleApiClient来对用户进行身份验证,并允许应用程序连接到Fitness api。所包含的作用域应该与应用程序所需的作用域匹配。身份验证偶尔会故意失败,在这种情况下,会有一个已知的解决方案,OnConnectionFailedListener()可以解决这个问题。

您还可以在这里看到一个示例代码,该代码创建了一个客户端,该客户端应该向Fitness.API请求读取权限,并添加读取(SCOPE_LOCATION_READ)和写入(SCOPE_BODY_READ_WRITE)的权限。