java - 使用 android.gms.drive 从 android 中删除/垃圾文件

标签 java android google-drive-api google-drive-android-api

我需要使用 com.google.android.gms.drive 从 Google Drive 中删除文件。从我读到的here在网络上,“新 API”不支持文件删除。 那(仍然)正确吗?我的意思是 API 不再那么新了......

我也读过“清除内容并忘记”策略,但我不想遵循这种方法。

问题的第 2 部分:鉴于仍然无法通过上述 API 删除文件;有什么简单的方法来组合 REST API使用我已经编写的代码?有点像

  1. 从 GoogleApiClient 获取 token
  2. 触发带 token 和文件 ID 的 DELETE 请求
  3. ???
  4. 利润

编辑:新的 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 添加垃圾/删除功能使下面的答案不相关

原始答案:

顺序是:

  1. 从 GDAA(文件或文件夹)获取 DriveId
  2. 从 DriveId.getResourceId() 获取 ResourceId(如果文件/文件夹尚未提交,则可能为 null)
  3. 在此 REST 调用中使用 ResourceId (rsid):
com.google.api.services.drive.Drive.files().trash(rsid).execute()
com.google.api.services.drive.Drive.files().delete(rsid).execute()
  1. 最终意识到您不能这样做,因为您会在 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/

相关文章:

java - 自动将一个对象提升到老年代

java - Android 位图调整为中心文本

android - 获取 id 可绘制资源数组

google-api - 缩略图 404 错误

python - 如果文件夹已存在于谷歌驱动器中,如何跳过文件夹创建? (Py驱动器)

java - DatagramPacket 的 IP 字段何时从目的 IP 更改为源 IP?

java - 在应用程序上使用时,对每个 "getKey()"的 Firebase 上的所有数据进行重新分组

java - 在设备中安装 Android 应用程序

iOS-在 Google Drive Api 上使用上传图片(错误 "Assertion failure in: GTLServer...")

java - 如何检查 url 中是否存在协议(protocol)?