ドライブ内に作成されたフォルダのresourceIdを取得する必要があります。 は私がこのやっているこれらのドキュメントfirstとsecond 呼ば:このコードでGoogleドライブのフォルダのResourceIDを取得
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
});
}
}
}
});
を、私は(私は、コードを通してそれを得るとき常にnullである)getResourceId()を除いてresult
内のすべての値を取得しています。
私はドライブのURLに自分のフォルダのIDが表示されることさえあります。
すでに多くの研究が行われていますが、まだ解決策はありません。唯一の理由があります。
これを解決した人はいますか?
私はこの特定の問題にぶつかりませんでしたが、リソースIDの割り当てが遅れる場所を読んだことがあります。 http://stackoverflow.com/questions/22874657/unpredictable-result-of-driveid-getresourceid-in-google-drive-android-apiをご覧ください。 – Cheticamp
ええ、それは一日遅れることはできませんね。 – Atula
リソースIDを取得しようとしている場所は、フォルダの を作成するための 'onResult'コールバックにあります。この呼び出しは、フォルダの作成直後に常に行われるため、GDAAがまだ同期していない可能性があるため、 リソースIDの割り当てが遅れることが予想される場合があります。あなたは というリソースIDを24時間後に別のコード(あなたの投稿したものではない)でチェックし、リソースIDがまだヌルであると言っていますか? – Cheticamp