I need to get the resourceId of a folder created inside my drive. Referred these docs first and second I am doing this :
private void CreateFolderOnGoogleDrive() {
Query query = new Query.Builder()
.addFilter(Filters.and(Filters.eq(
SearchableField.TITLE, "Folder"),
Filters.eq(SearchableField.TRASHED, false)))
.build();
Drive.DriveApi.query(mGoogleApiClient, query)
.setResultCallback(new ResultCallback<DriveApi.MetadataBufferResult>() {
@Override
public void onResult(DriveApi.MetadataBufferResult result) {
if (!result.getStatus().isSuccess()) {
System.out.println("Cannot create folder in the root.");
} else {
boolean isFound = false;
for (Metadata m : result.getMetadataBuffer()) {
if (m.getTitle().equals("Folder")) {
Toast.makeText(getApplicationContext(), "folder exist", Toast.LENGTH_LONG).show();
isFound = true;
break;
}
}
if (!isFound) {
System.out.println("Folder not found; creating it.");
MetadataChangeSet changeSet = new MetadataChangeSet.Builder()
.setTitle("Folder")
.build();
Drive.DriveApi.getRootFolder(mGoogleApiClient)
.createFolder(mGoogleApiClient, changeSet)
.setResultCallback(new ResultCallback<DriveFolder.DriveFolderResult>() {
@Override
public void onResult(DriveFolder.DriveFolderResult result) {
if (!result.getStatus().isSuccess()) {
System.out.println("Error while trying to create the folder");
} else {
System.out.println("Created a folder");
}
}
System.out.println(result.getDriveFolder().getDriveId().getResourceId());
// ALWAYS return as null
});
}
}
}
});
With this code, I am getting every value inside result
except for the getResourceId()( which is null always when I get it through code).
Well I can even see my folder's id in drive url.
Already done a lot of research but none of them give any solution yet.They are giving only REASONS.
Is there anyone who have solved this ?