Android 如何从Google Drive中删除文件

Android 如何从Google Drive中删除文件,android,google-drive-api,google-drive-android-api,Android,Google Drive Api,Google Drive Android Api,我正在使用android演示在android中实现Google Drive集成。我在google drive中成功创建了一个文件。现在我想删除新创建的文件。我发现这个链接中的through Now files()方法的引用在驱动器中找不到 私有静态无效删除文件(驱动器服务,字符串文件ID){ 试一试{ service.files().delete(fileId.execute(); }捕获(IOE异常){ System.out.println(“发生错误:“+e”); } } 现在请告诉我如何从

我正在使用android演示在android中实现Google Drive集成。我在google drive中成功创建了一个文件。现在我想删除新创建的文件。我发现这个链接中的through Now files()方法的引用在驱动器中找不到

私有静态无效删除文件(驱动器服务,字符串文件ID){
试一试{
service.files().delete(fileId.execute();
}捕获(IOE异常){
System.out.println(“发生错误:“+e”);
}
}


现在请告诉我如何从谷歌硬盘删除文件。我对此做了研究,但没有找到解决办法。有人说使用谷歌硬盘以前的api。但现在这已经过时了。现在Goole使用V2作为驱动器。

上次我检查时,GDAA中没有删除。看

您可以等待它的实现,也可以使用RESTAPI


我怀疑您混淆了两种不同的API。GDAA是一个纯本地API,即,您的应用程序正在与Android Drive应用程序通信。使用RESTAPI,您的应用程序将通过http与Google Drive服务器进行通信。您的应用程序可以使用其中一种,也可以同时使用这两种方法(尽管您需要非常绝望才能这样做)。

目前还不支持使用core API从Google drive中删除文件。因此,必须使用Restful API调用。要执行restful API调用,需要将以下JAR添加到lib文件夹

google-api-client-1.19.1.jar
google-api-client-android-1.19.1.jar
google-api-services-drive-v2-rev158-1.19.1.jar
google-http-client-1.19.0.jar
google-http-client-android-1.19.0.jar
google-http-client-gson-1.19.0.jar
google-oauth-client-1.19.0.jar
gson-2.1.jar
jsr305-1.3.9.jar
现在,您可以使用核心API调用执行restful API调用,如下所示

    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).setApplicationName("SmsAndCallLogBackup")
                .build();
还记得我使用CoreAPI连接到Google drive吗。为了只删除,我使用的是restful API

以下方法用于从Google drive中删除文件

public void delete(DriveId dId) {
        try {
            String fileID = dId.getResourceId();
            if (fileID != null)
                _drvSvc.files().delete(fileID).execute();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
在异步任务中调用此方法,否则会出现错误
它肯定会有用的

我做得很成功 **

私有GoogleapClient api

**


您使用的是REST API还是Android API?我使用的是Android API。可能是重复的我参考了您提供的链接。我在问题中也提到了这个链接。我已经通过了这个链接。这里有一个方法。。。。。服务().files()……在驱动器服务中找不到文件()。这就是我问这个问题的原因。确保您使用的是正确的Java SDK。请记住,GDAA的SDK与REST的SDK不同。对于像删除这样简单的东西,我不需要为sDK操心。只需调用http DELETE{fileId}。当然,您需要确保您拥有OAuth2访问令牌。
   public void Update(DriveId dId) {
    try {
        DriveFile sumFile = dId.asDriveFile();
        com.google.android.gms.common.api.Status deleteStatus =
                sumFile.delete(api).await();
        if (!deleteStatus.isSuccess()) {
            Log.e(TAG, "Unable to delete app data.");

        } else {
            // Remove stored DriveId.
            preferences_driverId.edit().remove("drive_id").apply();
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
}