Android - 使用适用于Android的Google Drive API

时间:2017-05-15 13:45:40

标签: android google-drive-android-api

对于我的应用,我需要与Google云端硬盘同步列表。我已经实现了SignIn并让我的Main_Activity实现了两个:

com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks,
com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener

即使我阅读了整个Google Drive API for Android文档,更具体地说是Store Application Data部分。通过example on GitHub查看,我无法让它发挥作用。我个人认为这个文档真的令人困惑。它甚至不清楚Google Drive API for Android和Google Drive REST API之间的区别,以及我应该将哪一个用于我的方案。

此外,我注意到GitHub上的示例扩展了一个自定义Activity,其中包含其他方法。

您是否可以逐步解释如何使用Android驱动API?

2 个答案:

答案 0 :(得分:3)

我很熟悉你的挫折感。有#34; Google Drive Android API" (GDAA)和" Drive REST API。"网上有一些很好的文档,但找到它并理解它可能是一个挑战,特别是因为包的名称非常相似。此外,至少有两个现存版本的" Drive REST API"你必须保持版本直接。

关于GDAA,您已经找到了这个documentation,但您应该仔细看看。我建议你做一个简单的活动,比如creating a file,然后从那里开始工作。

我认为您引用的GitHub示例中的自定义Activity是BaseDemoActivity。该类只提供了一些生命周期方法和一些其他常用例程。

Google Drive Android API(GDAA)与Play服务紧密集成,Google声称可提供更好的性能。 (见注释here):

  

注意:此快速入门说明了在Android应用程序中使用Drive REST API。但是,在大多数情况下,通过使用适用于Android的Drive API,生产云端硬盘应用程序将大大受益,该API与Google Play服务集成并提供更好的性能。在Android应用程序中使用Drive REST API之前,您应该仔细查看适用于Android的Drive API,并尽可能在您的应用程序中使用它。如果您想了解更多信息,可以使用适用于Android快速入门的云端硬盘API。

尽管如此,由于对同步频率的限制越来越严格,我在大多数情况下都放弃了GDAA。 (有关更多详细信息,请参阅本文底部的注释。)

使用GDAA时,要记住的一个关键事项是,即使您的代码可以在UI线程上运行,GDAA也不能因为它代表您执行的潜在冗长任务。这意味着一旦您请求GDAA从UI线程完成某项任务,GDAA将在后台(而不是在UI线程上)执行该工作,并通过回调向您提供结果。

这种结构虽然是必要的,但意味着您的代码将是GDAA调用的一系列方法,并不一定会展示您可能习惯的清晰顺序格式。我认为它是软件中的Pachinko机器。

虽然不是一步一步的说明,但我希望这有助于指明你正确的方向。

关于同步频率: 更具体地说,将按DrivePreferencesApi指定的方式上传到服务器。上传通常很快发生。但是,下载速率有限。请参阅this documentation

  

为了避免设备和服务器上的过度负载,同步请求受到速率限制。在这种情况下,操作将以DRIVE_RATE_LIMIT_EXCEEDED状态失败,这表示同步已经发生在最近,因此不需要另一个同步。在足够的退避持续时间后重新尝试时,操作将成功。

我相信"退避持续时间"取决于安装的Play服务的版本。根据我的经验,这段时间从几分钟到半小时或更长时间不等。这可能已经改变,我试图找到关于此的文档但是没有成功。

如果GDAA的下载限制对您不起作用,那么您可能需要考虑Drive REST。您也可以将Firebase视为一种可能的解决方案。

答案 1 :(得分:0)

Google Drive Android API说明了使用Google Play服务中提供的界面与Drive服务对话的所有可能方式。 检查此URI以便快速入门。 https://github.com/googledrive/android-demos

Google Drive REST API不仅适用于所有Android技术。如Google Drive REST API Documentation

所示