我想访问Google云端硬盘文件夹的完整文件列表(此列表中应包含非由我创建的文件)
我面临的问题:使用Drive SDK,似乎只允许两种类型的范围 - FILE_SCOPE和APP_FOLDER_SCOPE。它们只能获取应用程序创建的文件。
在更改为更开放的范围 - https://www.googleapis.com/auth/drive.readonly时,我在尝试连接GoogleApiClient时获得statusCode = INTERNAL_ERROR,resolution = null。
是否可以通过Drive SDK以编程方式对Google云端硬盘进行完全(只读)访问?
欢迎任何有关进一步研发的建议或指示。
答案 0 :(得分:1)
使用REST API,你应该使用类似的东西:
List<String> fileInfo = new ArrayList<String>();
FileList result = mService.files().list()
.setPageSize(10)
.setFields("nextPageToken, items(id, name)")
.execute();
List<File> files = result.getFiles();
if (files != null) {
for (File file : files) {
fileInfo.add(String.format("%s (%s)\n",
file.getName(), file.getId()));
}
}
列出所有文件。去那里寻找更多信息: https://developers.google.com/drive/v3/web/quickstart/android
答案 1 :(得分:0)
您应按照以下步骤从控制台激活Drive API。
答案 2 :(得分:0)
您必须每次都设置页面令牌,以便列出G驱动器中的所有文件:
private static List<File> getAllFilesGdrive(Drive service) throws IOException {
List<File> result = new ArrayList<File>();
Files.List request = service.files().list();
do {
try {
FileList files = request.execute();
result.addAll(files.getFiles());
request.setPageToken(files.getNextPageToken());
} catch (IOException e) {
System.out.println("An error occurred: " + e);
request.setPageToken(null);
}
} while (request.getPageToken() != null &&
request.getPageToken().length() > 0);
return result;
}