当我尝试从Driveid获取资源ID时出现第一个错误。
DriveFile dfile= Drive.DriveApi.getFile(mGoogleApiClient,DriveId.decodeFromString(driveId));
Log.e(TAG,"Driveid>>>>" + driveId);
String resourceID= dfile.getDriveId().getResourceId().toString();
每当我获得资源ID并尝试从google驱动器中删除项目时。
com.google.api.services.drive.Drive service;
service.files().delete(resourceID).execute();
这里Logcat ERROR:
请为我提供google驱动器删除文件的标准解决方案。
答案 0 :(得分:2)
对于新创建的文件,不会立即填充resourceId。一旦文件提交到服务器,它就会被填充。在使用之前,您应该检查它是否为空。
答案 1 :(得分:0)
对于'垃圾',无需再将GDAA与REST Api混合使用。自GooPlaySvcs 7.0版(2015年3月)以来,GDAA中有一个'trash()'方法,不需要ResourceId,使您免受timing issues与其延迟/存在相关的影响。
简短演示,这里是GDAA的'垃圾'包装器,不需要ResourceId。最重要的是,您无需担心网络(wifi)在线/离线状态。
private static GoogleApiClient mGAC;
...
static void trash(DriveId dId) {
if (mGAC != null && mGAC.isConnected() && dId != null) {
DriveResource driveResource;
if (dId.getResourceType() == DriveId.RESOURCE_TYPE_FOLDER) {
driveResource = Drive.DriveApi.getFolder(mGAC, dId);
} else {
driveResource = Drive.DriveApi.getFile(mGAC, dId);
}
if (driveResource != null) {
driveResource.trash(mGAC).setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
// bingo, trashed successfully !!!
}
});
}
}
}
祝你好运