我正在尝试通过我的Android应用访问特定帐户的谷歌驱动器。此外,我还使用google 选项登录,以便用户可以通过google +登录该应用,这将是播放服务正在使用的Google帐户。
但是,我想将一些文件存储在特定的Google云端硬盘帐户abcd@gmail.com
上。我尝试使用GoogleAPIClient
指定DRIVE 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.
如何连接到谷歌的特定/静态帐户以访问驱动器API。
由于 SAURABH
答案 0 :(得分:0)
我相信您只能使用在您的设备上“注册”的帐户(xxx@gmail.com)(设置..帐户)。这意味着,您必须调用Android帐户选择器活动才能让用户注册帐户(如果您的应用只能访问任何帐户,只知道它的电子邮件 - 没有密码,那将是一场安全灾难,对吧?)。
如果您想深入了解代码,请按照this code中的' REQ_ACCPICK '常量进行操作。它会显示您必须使用的序列。特别是:
应该注意的是,如果您没有传递任何电子邮件,GDAA的'GoogleApiClient.Builder()'(上面的代码)会调用类似的帐号选择器。我相信有一种方法会重置你的'serviceClient',允许GDAA构建器再次重新调用帐户选择器(参见 clearDefaultAccountAndReconnect() )。
我从未使用过这种方法,你可以进一步研究这条道路。我想我没有遵循这个,因为我无法检索用户选择的当前帐户。了解当前用户对我的应用程序至关重要(缓存帐户特定数据等等)
祝你好运