Android 为特定帐户访问google drive API

Android 为特定帐户访问google drive API,android,google-drive-api,google-drive-android-api,Android,Google Drive Api,Google Drive Android Api,我正试图通过我的android应用程序为一个特定的帐户访问google drive。此外,我还有登录google选项,用户可以通过google+登录应用程序,这将是play services使用的google帐户 但是,我想在特定的google drive帐户上存储一些文件,比如abcd@gmail.com。我尝试使用GoogleAppClient,将驱动器API、所需的作用域和帐户名指定为'abcd@gmail.com,它看起来像下面这样: serviceClient = new Google

我正试图通过我的android应用程序为一个特定的帐户访问google drive。此外,我还有登录google选项,用户可以通过google+登录应用程序,这将是play services使用的google帐户

但是,我想在特定的google drive帐户上存储一些文件,比如
abcd@gmail.com
。我尝试使用
GoogleAppClient
,将驱动器API、所需的作用域和帐户名指定为'abcd@gmail.com,它看起来像下面这样:

serviceClient = new GoogleApiClient.Builder(this)
         .addApi(Drive.API)
         .setAccountName("abcd@gmail.com").addConnectionCallbacks(this)
         .addScope(Drive.SCOPE_FILE)  
         .addOnConnectionFailedListener(this)
         .build();
serviceClient.connect();
但是,我得到了一个错误:

The specified account does not exist on this device. Please choose different account.
如何连接到google的特定/静态帐户以访问驱动器API

谢谢
Saurabh

我相信您只能使用帐户(xxx@gmail.com)在您的设备上“注册”的(设置..帐户)。这意味着,你必须调用Android帐户选取器活动,让用户注册帐户(如果你的应用程序只能在知道任何帐户的电子邮件的情况下访问该帐户——没有密码,这将是一场安全灾难,对吗?)

如果您想深入研究执行此操作的代码,只需遵循中的'REQ\u acccpick'常量即可。它显示了您必须使用的顺序。特别是:

  • 如果应用程序没有可使用的“默认电子邮件”(GDAA.init()失败),则会调用帐户选择器
  • 帐户选择器由用户从应用程序的菜单调用,因此用户可以选择/添加新帐户(onOptions ItemSelected())
需要注意的是,如果您没有发送任何电子邮件,GDAA的“GoogleAppClient.Builder()”(上面的代码)会调用类似的帐户选择器。我相信有一种方法可以重置您的“serviceClient”,允许GDAA构建器再次调用帐户选择器(请参阅)。
我从未使用过这种方法,您可以进一步研究这条路径。我想我没有遵循这一点,因为我无法检索用户选择的当前帐户。了解当前用户是谁对我的应用程序至关重要(缓存特定于帐户的数据等)


祝你好运

谢谢!如果所需的帐户必须在设备上注册,那么该方法将不会帮助我。。。谢谢,这消除了我的困惑!!我对这方面的了解仅基于“黑盒”测试和猜测/假设。还是有可能有人有更深入的知识(谷歌)可能会对此有所了解。你能澄清一下你的用例吗?驱动器用于用户拥有和管理的存储,所以我不确定它是否符合您的要求。如果您想要简单、非用户特定的应用程序存储,可能是更好的选择。