使用Google Drive Api列出GDrive的文件和文件夹

时间:2015-07-01 05:54:06

标签: android google-api google-drive-api google-drive-android-api

我想使用Google Drive API列出Google云端硬盘上目录的所有文件和文件夹。但我只获取文件的元数据对象而不是目录中存在的文件夹。我使用以下代码

DriveFolder folder = Drive.DriveApi.getRootFolder(getClient());
folder.listChildren(getClient())
 .setResultCallback(new ResultCallback < DriveApi.MetadataBufferResult > () {@
     Override
     public void onResult(DriveApi.MetadataBufferResult result) {
         if (!result.getStatus().isSuccess()) {
             L.c("Error in listing root folder");
             return;
         }
         MetadataBuffer metadataBuffer = result.getMetadataBuffer();
         Metadata filedata;
         ListItem[] items = new ListItem[metadataBuffer.getCount()];
         L.c("Count :" + metadataBuffer.getCount());
         for (int i = 0; i < metadataBuffer.getCount(); i++) {
             items[i] = new ListItem(metadataBuffer.get(i));
         }
         listAdapter = new ArrayAdapter < ListItem > (ExplorerClass.this, android.R.layout.simple_list_item_1, items);
         mainList.setAdapter(listAdapter);
     }
 });

1 个答案:

答案 0 :(得分:4)

如果目录中存在的文件夹或文件(在您的案例根目录中)不是由您的应用创建的或之前由您的应用打开的,那么您将无法通过您的应用看到它们。这是因为您可能正在使用Drive.FILE范围:https://developers.google.com/drive/web/scopes

不幸的是,谷歌驱动Android API目前仅支持drive.file和drive.appfolder范围。如果您需要drive.readonly.metadata范围,则可以使用Google Drive REST API。