我正在使用android-demos在Android中实现Google Drive集成。我在谷歌硬盘中成功创建了一个文件。现在我想删除新创建的文件。我通过https://developers.google.com/drive/v2/reference/files/delete找到了此引用的引用。此驱动器中找不到此链接中的文件()方法。
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云端硬盘中删除文件。我对此进行了研究,但没有找到解决方案。有人说使用以前的Google云端硬盘API。但现在已经过时了。现在Goole使用V2进行驱动。
答案 0 :(得分:3)
上次检查时,GDAA中没有删除。见How to delete a file on google drive using Google Drive Android API
您可以等待它实现,也可以使用REST API https://developers.google.com/drive/v2/reference/files/delete
我怀疑你混淆了两种不同的API。 GDAA是纯粹的本地API,即。您的应用正在与Android Drive应用进行通信。使用REST API,您的应用通过http与Google云端硬盘服务器进行通信。您的应用程序可以使用其中之一,也可以两者兼而有之(尽管您需要非常绝对地执行此操作)。
答案 1 :(得分: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调用执行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();
请记住我使用核心API连接到Google云端硬盘。并且仅用于删除我正在使用restful API
以下方法用于从Google云端硬盘中删除文件
public void delete(DriveId dId) {
try {
String fileID = dId.getResourceId();
if (fileID != null)
_drvSvc.files().delete(fileID).execute();
} catch (Exception e) {
e.printStackTrace();
}
}
在异步任务中调用此方法,否则会出错 它肯定会工作
答案 2 :(得分:0)
I have done it successfull **
private 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();
}
}