使用 android.gms.drive 从 android 中删除/回收文件
Delete / trash file from android using android.gms.drive
我需要使用 com.google.android.gms.drive
从 Google 驱动器中删除文件。根据我所读 here 和整个网络的内容,"new API" 中不支持文件删除。 那(仍然)正确吗? 我的意思是 API 不再那么新了...
我也读到了 "clear contents and forget" 策略,但我不想遵循这种方法。
问题二: 鉴于上面提到的API仍然无法删除文件;有什么 easy 方法可以将 REST API 与我已经编写的代码结合起来吗?像
- 从 GoogleApiClient
获取令牌
- 触发带令牌和文件 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 the App Folder.
:( (
edit3: 自 5 月 28 日起,现在可以实际 delete 文件。
更新(2015 年 5 月)
向 GDAA 7.5 添加垃圾/删除功能呈现以下答案不相关。
原始答案:
顺序是:
- 从 GDAA(文件或文件夹)获取 DriveId
- 从 DriveId.getResourceId() 获取 ResourceId(如果 file/folder 尚未提交,则可能为 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 中看到文件被删除/删除很久之后。您甚至可以在其中写入,在您刚刚删除的那个文件夹中创建文件,...这就是为什么人们引入了 "clear contents and forget" 没人喜欢的策略。
不用说,这适用于您可能在 GDAA 宇宙之外执行的任何删除/垃圾操作(手动 trash/delete 使用网络界面等...)
所以,总结一下。 'pinoyyid' 是的,每个 API 都是不同的,GDAA 不能取代 REST(目前)。当你尝试更深入地工作时,你会很快意识到这一点,比如获取缩略图 url、解决延迟问题等......另一方面,GDAA 有优势,因为它可以在没有你的应用程序处理的情况下离线工作它。使用 REST 时,您的应用程序应该在某种同步服务中执行所有 Drive 调用,以将您的 UI 操作与网络问题(延迟、离线等)分开。 GDAA 会为您处理此问题,但会根据自己的时间条款处理。并且没有删除功能。
我在 github 上放了一段代码,其中有 both these API's used side-by-side,您可以使用它来尝试不同的场景,然后再投入到其中一个场景中。
很高兴能从 Google 那里清楚地听到最终策略是什么,即
- GDAA 是否有一天会取代 REST,在所有 REST 功能都在之后?
- 之后他们会淘汰 REST 吗?
祝你好运
从 Google Play 服务 7.5 开始,Google Drive Android API 使用 DriveResource.delete() 方法支持删除。
删除是永久性的,建议仅对应用文件夹内容进行删除,其中垃圾桶不可用。
我需要使用 com.google.android.gms.drive
从 Google 驱动器中删除文件。根据我所读 here 和整个网络的内容,"new API" 中不支持文件删除。 那(仍然)正确吗? 我的意思是 API 不再那么新了...
我也读到了 "clear contents and forget" 策略,但我不想遵循这种方法。
问题二: 鉴于上面提到的API仍然无法删除文件;有什么 easy 方法可以将 REST API 与我已经编写的代码结合起来吗?像
- 从 GoogleApiClient 获取令牌
- 触发带令牌和文件 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 the App Folder.
:( (
edit3: 自 5 月 28 日起,现在可以实际 delete 文件。
更新(2015 年 5 月)
向 GDAA 7.5 添加垃圾/删除功能呈现以下答案不相关。
原始答案:
顺序是:
- 从 GDAA(文件或文件夹)获取 DriveId
- 从 DriveId.getResourceId() 获取 ResourceId(如果 file/folder 尚未提交,则可能为 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 中看到文件被删除/删除很久之后。您甚至可以在其中写入,在您刚刚删除的那个文件夹中创建文件,...这就是为什么人们引入了 "clear contents and forget" 没人喜欢的策略。
不用说,这适用于您可能在 GDAA 宇宙之外执行的任何删除/垃圾操作(手动 trash/delete 使用网络界面等...)
所以,总结一下。 'pinoyyid' 是的,每个 API 都是不同的,GDAA 不能取代 REST(目前)。当你尝试更深入地工作时,你会很快意识到这一点,比如获取缩略图 url、解决延迟问题等......另一方面,GDAA 有优势,因为它可以在没有你的应用程序处理的情况下离线工作它。使用 REST 时,您的应用程序应该在某种同步服务中执行所有 Drive 调用,以将您的 UI 操作与网络问题(延迟、离线等)分开。 GDAA 会为您处理此问题,但会根据自己的时间条款处理。并且没有删除功能。
我在 github 上放了一段代码,其中有 both these API's used side-by-side,您可以使用它来尝试不同的场景,然后再投入到其中一个场景中。
很高兴能从 Google 那里清楚地听到最终策略是什么,即
- GDAA 是否有一天会取代 REST,在所有 REST 功能都在之后?
- 之后他们会淘汰 REST 吗?
祝你好运
从 Google Play 服务 7.5 开始,Google Drive Android API 使用 DriveResource.delete() 方法支持删除。
删除是永久性的,建议仅对应用文件夹内容进行删除,其中垃圾桶不可用。