1

我正在使用 android-demos 在 android 中实现 Google Drive 集成。我成功地在谷歌驱动器中创建了一个文件。现在我想删除那个新创建的文件。我通过https://developers.google.com/drive/v2/reference/files/delete Now files() 方法找到了此链接的参考,在 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); } }

现在请告诉我如何从 Google Drive 中删除文件。我对此进行了研究,但没有找到解决方案。有人说使用 Google Drive 以前的 api。但现在已经过时了。现在 Goole 使用 V2 for Drive。

4

3 回答 3

3

上次我检查时,GDAA 中没有删除。请参阅如何使用 Google Drive Android API 删除 Google Drive 上的文件

您可以等待它实现,也可以使用 REST API https://developers.google.com/drive/v2/reference/files/delete

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

于 2014-08-13T05:55:45.693 回答
0

尚不支持使用核心 API 从 Google 驱动器中删除文件。所以你必须使用 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 调用来进行安静的 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();

记得我使用核心 API 连接到 Google 驱动器。并且仅删除我使用的是restful API

以下方法用于从谷歌驱动器中删除文件

public void delete(DriveId dId) {
        try {
            String fileID = dId.getResourceId();
            if (fileID != null)
                _drvSvc.files().delete(fileID).execute();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

在异步任务中调用此方法,否则会出错,它肯定会工作

于 2015-02-17T13:04:00.423 回答
0

我已经成功完成了**

私有 GoogleApiClient api;

**

   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();
    }
}
于 2016-11-18T10:50:55.913 回答