热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android–使用适用于Android的GoogleDriveAPI

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

对于我的应用,我需要与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?

解决方法:

我很熟悉你的挫败感.有“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):


Note: This quickstart illustrates the use of the Drive REST API in an Android application. However, in the majority of cases production Drive apps will strongly benefit by making use of the Drive API for Android, which is integrated with Google Play Services and offers better performance. Before using the Drive REST API in your Android application, you should carefully review the Drive API for Android and use it in your application if possible. A Drive API for Android Quickstart is available if you want to learn more.


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

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

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

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

关于同步频率:
更具体地说,上传到服务器将按照DrivePreferencesApi的规定进行.上传通常会很快发生.但是,下载速率有限.见this documentation.


In order to avoid excessive load on the device and the server, sync requests are rate limited. In this case, the operation will fail with DRIVE_RATE_LIMIT_EXCEEDED status, which indicates that a sync already happened quite recently so there is no need for another sync. The operation will succeed when reattempted after a sufficient backoff duration.


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

如果GDAA的下载限制不适合您,那么您可能需要考虑Drive REST.您还可以将Firebase视为可能的解决方案.


推荐阅读
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • switch语句的一些用法及注意事项
    本文介绍了使用switch语句时的一些用法和注意事项,包括如何实现"fall through"、default语句的作用、在case语句中定义变量时可能出现的问题以及解决方法。同时也提到了C#严格控制switch分支不允许贯穿的规定。通过本文的介绍,读者可以更好地理解和使用switch语句。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
author-avatar
Blackn
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有