我需要使用 com.google.android.gms.drive
从 Google Drive 中删除文件。从我读到的here在网络上,“新 API”不支持文件删除。 那(仍然)正确吗?我的意思是 API 不再那么新了......
我也读过“清除内容并忘记”策略,但我不想遵循这种方法。
问题的第 2 部分:鉴于仍然无法通过上述 API 删除文件;有什么简单的方法来组合 REST API使用我已经编写的代码?有点像
- 从 GoogleApiClient 获取 token
- 触发带 token 和文件 ID 的 DELETE 请求
- ???
- 利润
编辑:新的 Google Play 服务(版本 7.0.0/2015 年 3 月)终于采用了 trash()
方法。参见 https://developer.android.com/reference/com/google/android/gms/drive/DriveResource.html了解更多详情。
.
edit2: 显然你不能对 app 文件夹 中的文件使用 trash()
: Cannot trash App Folder or files inside应用程序文件夹。
:((
edit3:自 5 月 28 日起,现在实际上有可能 delete文件。
最佳答案
更新(2015 年 5 月)
向 GDAA 7.5 添加垃圾/删除功能使下面的答案不相关。
原始答案:
顺序是:
- 从 GDAA(文件或文件夹)获取 DriveId
- 从 DriveId.getResourceId() 获取 ResourceId(如果文件/文件夹尚未提交,则可能为 null)
- 在此 REST 调用中使用 ResourceId (rsid):
com.google.api.services.drive.Drive.files().trash(rsid).execute() com.google.api.services.drive.Drive.files().delete(rsid).execute()
- 最终意识到您不能这样做,因为您会在 GDAA 中看到该文件被删除/删除很久之后。您甚至可以在其中写入,在您刚刚丢弃的文件夹中创建文件,...这就是人们引入“清除内容并忘记”策略的原因,但没人喜欢。
不用说,这适用于您可能在 GDAA 宇宙之外执行的任何删除/删除操作(使用 Web 界面等手动删除/删除...)
所以,总结一下。 'pinoyyid' 是正确的,每个 API 都是不同的,GDAA 不能取代 REST(目前)。当您尝试更深入地工作时,您会很快意识到这一点,例如获取缩略图 url、解决延迟问题等……另一方面,GDAA 具有优势,因为它可以在您的应用程序不处理它的情况下离线工作。使用 REST 时,您的应用程序应该在某种同步服务中执行所有驱动器调用,以将您的 UI 操作与网络问题(延迟、离线等)分开。 GDAA 会为您处理此问题,但会根据自己的时间条款处理。并且没有删除功能。
我在github上放了一段代码,里面有both these API's used side-by-side在投入其中一个之前,您可以使用它来尝试不同的场景。
很高兴能从 Google 清楚地听到最终策略是什么,即
- 在所有 REST 功能都加入之后,GDAA 是否有一天会取代 REST?
- 之后他们会淘汰 REST 吗?
祝你好运
关于java - 使用 android.gms.drive 从 android 中删除/垃圾文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29034693/