Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android AccountManager如何知道使用哪个Google帐户?_Android_Authentication_Oauth 2.0_Google Drive Api_Google Authentication - Fatal编程技术网

Android AccountManager如何知道使用哪个Google帐户?

Android AccountManager如何知道使用哪个Google帐户?,android,authentication,oauth-2.0,google-drive-api,google-authentication,Android,Authentication,Oauth 2.0,Google Drive Api,Google Authentication,我正在尝试在Android中实现驱动器V3 但是我越来越喜欢authError { "error":{ "errors":[ { "domain":"global", "reason":"authError", "message":"Invalid Credentials", "locationType":"header", "locatio

我正在尝试在Android中实现驱动器V3

但是我越来越喜欢authError

{
   "error":{
      "errors":[
         {
            "domain":"global",
            "reason":"authError",
            "message":"Invalid Credentials",
            "locationType":"header",
            "location":"Authorization"
         }
      ],
      "code":401,
      "message":"Invalid Credentials"
   }
}
我使用从用户处获取令牌,我认为它访问了错误的控制台帐户。
它如何知道访问哪个帐户

这是我的AccountManager代码,我成功获取了用户令牌。我之前也使用了
AccountManager.invalidateAuthToken

    Bundle options = new Bundle();
    options.putString(AccountManager.KEY_ANDROID_PACKAGE_NAME, context.getPackageName());
    accountManager.getAuthToken(account, scope, options, context,
            callback, null);
根据[getAuthToken](,java.lang.String,android.os.Bundle,android.app.Activity,android.accounts.AccountManagerCallback,android.os.Handler)的文档:

获取特定帐户的指定类型的身份验证令牌,在必要时提示用户提供凭据。此方法适用于在前台运行的应用程序,在前台直接向用户询问密码是有意义的

如果为该帐户和类型缓存了以前生成的身份验证令牌,则返回该令牌。否则,如果保存的密码可用,则会将其发送到服务器以生成新的身份验证令牌。否则,系统将提示用户输入密码。

这似乎取决于您在
getAuthToken()
中传递的
帐户
变量的值

你可能已经有了这个,但是为了社区,你是否包括了文档中提到的
USE\u CREDENTIALS
权限:

注意:如果您的应用程序目标是在API级别22及之前工作,这些平台需要使用\u凭据权限

希望这有帮助。祝你好运

根据[getAuthToken](,java.lang.String,android.os.Bundle,android.app.Activity,android.accounts.AccountManagerCallback,android.os.Handler)的文档):

获取特定帐户的指定类型的身份验证令牌,在必要时提示用户提供凭据。此方法适用于在前台运行的应用程序,在前台直接向用户询问密码是有意义的

如果为该帐户和类型缓存了以前生成的身份验证令牌,则返回该令牌。否则,如果保存的密码可用,则会将其发送到服务器以生成新的身份验证令牌。否则,系统将提示用户输入密码。

这似乎取决于您在
getAuthToken()
中传递的
帐户
变量的值

你可能已经有了这个,但是为了社区,你是否包括了文档中提到的
USE\u CREDENTIALS
权限:

注意:如果您的应用程序目标是在API级别22及之前工作,这些平台需要使用\u凭据权限


希望这有帮助。祝你好运

我们在这里谈论的是谷歌账户。显然,所有项目都应该是相同的。这是我要找的项目号,我想我没有登录到正确的项目号。对不起。我弄糊涂了。在您的帖子中,您询问如何使用
AccountManager
访问哪个帐户,我提供了我认为合适的答案。你能详细说明一下吗?您是否正在使用与多个Google帐户同步的设备测试驱动器API?我们在这里讨论的是Google帐户。显然,所有项目都应该是相同的。这是我要找的项目号,我想我没有登录到正确的项目号。对不起。我弄糊涂了。在您的帖子中,您询问如何使用
AccountManager
访问哪个帐户,我提供了我认为合适的答案。你能详细说明一下吗?您是否正在使用与多个Google帐户同步的设备测试驱动器API?