我希望在上传后获取resourceId,但它返回null。你能帮助我获得这个价值吗? 提前谢谢。
Drive.DriveApi.getFolder(getGoogleApiClient(), driveIdResult.getDriveId())
.createFile(getGoogleApiClient(), changeSet, driveContents)
.setResultCallback(new ResultCallbacks<DriveFolder.DriveFileResult>() {
@Override
public void onSuccess(@NonNull final DriveFolder.DriveFileResult driveFileResult) {
if (driveFileResult.getStatus().isSuccess()) {
String driveId = driveFileResult.getDriveFile().getDriveId().toString();
//return this:
//DriveId:CAESHDBCeEc0ZnI0YkQ0ZVZRa1E1YTNVMFVtUTRkRlUY1GcgsPT0w7xTKAA=
String resourceId = driveFileResult.getDriveFile().getDriveId().getResourceId();
//null
//but I want something like this: 0BxG4fr4bD4eVQXRjbTRBV2RMUHc
uploadCallBack.onFinish(true, resourceId);
}
}
@Override
public void onFailure(@NonNull com.google.android.gms.common.api.Status status) {
uploadCallBack.onFinish(false, null);
}
});
答案 0 :(得分:1)
我认为您可以按照此用户的建议: https://stackoverflow.com/a/31553269/1045199
根据您的代码判断,DriveId.toString()
会返回一些有用的内容,您可以将其与事件进行比较。我会说:
<String, UploadCallback>
作为键DriveId.toString
地图
DriveEventService
onCompletion()
file.addChangeSubscription(getGoogleApiClient())
,以便您在[{1}} DriveEventService
内部,您可以通过调用onCompletion()
Map.get()
的DriveId
我没有对它进行测试,但至少在理论上它应该可行。
编辑:https://stackoverflow.com/a/25555159/1045199描述了一种非常类似的方法。在构建event.getDriveId()
时,请务必致电setNotifyOnCompletion(true)
。