访问特定帐户的 google 驱动器 API
Accesing google drive API for a specific account
我正在尝试通过我的 android 应用访问 google 驱动器以获取特定帐户。此外,我还有 sign in with google 选项,这样用户就可以通过 google+ 登录应用程序,这将是 google 播放服务正在使用的帐户。
但是,我想将一些文件存储在特定的 google 驱动器帐户上,比如说 abcd@gmail.com
。我尝试通过指定驱动器 API、所需范围和帐户名称 'abcd@gmail.com' 来使用 GoogleAPIClient
,如下所示:
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 的 specific/static 帐户以访问驱动器 APIs。
谢谢
索拉布
我认为您只能使用设备上 'registered' 的帐户 (xxx@gmail.com)(设置.. 帐户)。这意味着,您必须调用 Android 帐户选择器 activity 来让用户注册帐户(如果您的应用程序可以访问任何只知道它的电子邮件的帐户 - 没有密码,那将是一场安全灾难,对吧?).
如果您想深入了解执行此操作的代码,只需遵循 this code 中的“REQ_ACCPICK”常量即可。它向您展示了您必须使用的顺序。特别是:
- 如果应用程序没有 'default email' 可以使用(GDAA.init() 失败),则会调用帐户选择器。
- 用户从应用程序的菜单中调用帐户选择器,因此用户可以select/添加新帐户 (onOptionsItemSelected())。
应该注意的是,如果您不通过任何电子邮件,GDAA 的 'GoogleApiClient.Builder()'(您上面的代码)会调用类似的帐户选择器。我相信有一种方法可以重置您的 'serviceClient',允许 GDAA 构建器再次重新调用帐户选择器(参见 clearDefaultAccountAndReconnect())。
我从未使用过这种方法,您可以进一步研究这条路径。我想我没有遵循这个,因为我无法检索用户 selected 的当前帐户。并且了解当前用户是谁对于我的应用程序至关重要(缓存帐户特定数据等...)
祝你好运
我正在尝试通过我的 android 应用访问 google 驱动器以获取特定帐户。此外,我还有 sign in with google 选项,这样用户就可以通过 google+ 登录应用程序,这将是 google 播放服务正在使用的帐户。
但是,我想将一些文件存储在特定的 google 驱动器帐户上,比如说 abcd@gmail.com
。我尝试通过指定驱动器 API、所需范围和帐户名称 'abcd@gmail.com' 来使用 GoogleAPIClient
,如下所示:
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 的 specific/static 帐户以访问驱动器 APIs。
谢谢 索拉布
我认为您只能使用设备上 'registered' 的帐户 (xxx@gmail.com)(设置.. 帐户)。这意味着,您必须调用 Android 帐户选择器 activity 来让用户注册帐户(如果您的应用程序可以访问任何只知道它的电子邮件的帐户 - 没有密码,那将是一场安全灾难,对吧?).
如果您想深入了解执行此操作的代码,只需遵循 this code 中的“REQ_ACCPICK”常量即可。它向您展示了您必须使用的顺序。特别是:
- 如果应用程序没有 'default email' 可以使用(GDAA.init() 失败),则会调用帐户选择器。
- 用户从应用程序的菜单中调用帐户选择器,因此用户可以select/添加新帐户 (onOptionsItemSelected())。
应该注意的是,如果您不通过任何电子邮件,GDAA 的 'GoogleApiClient.Builder()'(您上面的代码)会调用类似的帐户选择器。我相信有一种方法可以重置您的 'serviceClient',允许 GDAA 构建器再次重新调用帐户选择器(参见 clearDefaultAccountAndReconnect())。
我从未使用过这种方法,您可以进一步研究这条路径。我想我没有遵循这个,因为我无法检索用户 selected 的当前帐户。并且了解当前用户是谁对于我的应用程序至关重要(缓存帐户特定数据等...)
祝你好运