如何使用Google Drive Android API删除谷歌驱动器上的文件

我是Google Drive Android API的新手,我正在学习它.但我遇到的问题是我无法使用Google Drive Android API删除文件,但没有一个例子. anybood可以帮我解决这个问题吗?非常感谢.

解决方法:

更新(2015年4月)
GDAA最终拥有它自己的’trash功能,使得答案低于IRRELEVANT.

原始答案:
正如Cheryl上面提到的,您可以将这两个API结合起来.

以下代码片段取自here,展示了如何完成:

首先,访问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) {} 
}

…瞧,你要删除你的文件.像往常一样,并非没有问题.

首先,如果您在创建文件后立即尝试删除文件,则getResourceId()将落在其正面,返回null.与这里的问题无关,我要提出一个问题.

第二,它很奇怪!并且它不应该保留在代码中,而是通过GDAA实现TRASH和DELETE功能.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...