如何使用Google Drive Android API在Google云端硬盘上删除文件
我是Google Drive Android API的新手,我正在学习它。 但是我遇到了一个问题,就是我无法使用Google Drive Android API删除一个文件,这里没有一个例子。 这个问题可以帮助我吗? 非常感谢。
更新(2015年4月)
GDAA终于有它自己的“ 垃圾 ”function,使答案低于IRRELEVANT。
原文答案:
正如Cheryl上面提到的,你可以把这两个API结合起来。
下面的代码片断展示了如何完成:
首先,获得对GoogleApiClient和… services.drive.Drive的访问权限
GoogleApiClient _gac; com.google.api.services.drive.Drive _drvSvc; public void init(MainActivity ctx, String email){ // build GDAA GoogleApiClient _gac = new GoogleApiClient.Builder(ctx).addApi(com.google.android.gms.drive.Drive.API) .addScope(com.google.android.gms.drive.Drive.SCOPE_FILE).setAccountName(email) .addConnectionCallbacks(ctx).addOnConnectionFailedListener(ctx).build(); // build RESTFul (DriveSDKv2) service to fall back to for DELETE com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential crd = GoogleAccountCredential .usingOAuth2(ctx, Arrays.asList(com.google.api.services.drive.DriveScopes.DRIVE_FILE)); crd.setSelectedAccountName(email); _drvSvc = new com.google.api.services.drive.Drive.Builder( AndroidHttp.newCompatibleTransport(), new GsonFactory(), crd).build(); }
其次,在GDAA的DriveId上实现RESTful API调用:
public void trash(DriveId dId) { try { String fileID = dId.getResourceId(); if (fileID != null) _drvSvc.files().trash(fileID).execute(); } catch (Exception e) {} } public void delete(DriveId dId) { try { String fileID = dId.getResourceId(); if (fileID != null) _drvSvc.files().delete(fileID).execute(); } catch (Exception e) {} }
…和瞧,你正在删除你的文件。 和往常一样,并非没有问题。
首先,如果您在创build文件后立即删除一个文件, getResourceId()会落在它的正面,并返回null 。 这里不涉及到这个问题,我会提出一个这样的唠叨。
其次, 这是一个黑客! 它不应该保留在你的代码过去的GDAA执行TRASH和DELETEfunction。
文件删除尚不支持。 你总是可以回到使用RESTful API这样的东西。
https://developers.google.com/drive/v2/reference/files/delete
您需要file-id来删除文件和服务的实例:
import com.google.api.services.drive.Drive; ... private static void deleteFile(Drive service, String fileId) { try { service.files().delete(fileId).execute(); } catch (IOException e) { System.out.println("An error occurred: " + e); } }
使用DriveResource.delete()方法从Google Play服务7.5开始,Google Drive Android API支持删除。
我们build议为用户可见文件使用垃圾桶而不是删除,以便用户有机会恢复任何意外丢失的内容。 删除是永久性的,并且只适用于垃圾箱不可用的应用程序文件夹内容。