我希望我的应用程序(单击按钮时)显示驱动器根文件夹中的所有文件夹(和文件).
但似乎这是不可能的,因为即使我使用Ouath2授权应用程序,该应用程序只能访问用户选择的文件和文件夹.
这种行为很奇怪,当文件夹选择器打开时,如果内容为ARE文件夹,它只列出该文件夹的内容.它根本不会列出任何文件.
请专家看看我的代码并告诉我哪里出错了?
我正在使用PickFolderWithOpener活动,以获取driveId.它根据选择器中的用户选择返回一个driveID.
DriveId driveId = (DriveId) data.getParcelableExtra( OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID);
这是在这里返回的文件夹Drive ID?然后我需要调用意图ListFilesInFolderActivity.我假设我必须在意图调用中传递此driveID?如果我将DriveID格式化为字符串并将其传递,则会失败
使用“找不到DriveId.您是否有权查看此文件?”信息.
所以我正在做的是传递ResourceID.
Intent intent = new Intent(this,ListFilesInFolderActivity.class); intent.putExtra("DriveID",driveId.getResourceId()); startActivity(intent);
需要在ListFilesInFolderActivity中使用什么? DriveID或resourceID?这是我在ListFilesInFolderActivity中的内容?
Bundle extras = getIntent().getExtras(); folderId= extras.getString("DriveID"); // this is the resourceID Drive.DriveApi.fetchDriveId(getGoogleApiClient(),folderId) .setResultCallback(idCallback); final private ResultCallback<DriveIdResult> idCallback = new ResultCallback<DriveIdResult>() { @Override public void onResult(DriveIdResult result) { if (!result.getStatus().isSuccess()) { showMessage("Cannot find DriveId. Are you authorized to view this file?"); return; } DriveFolder folder = Drive.DriveApi.getFolder(getGoogleApiClient(),result.getDriveId()); showMessage("Result driveId is: " + result.getDriveId()); folder.listChildren(getGoogleApiClient()) .setResultCallback(metadataResult); } };
这似乎工作,但它只列出所选文件夹中的文件夹.它不会列出文件.
为什么folder.listChildren(getGoogleApiClient())也没有列出文件!?
希望这是我想念的显而易见的事情.
解决方法
这是为什么? “注意:Google云端硬盘Android API目前仅支持drive.file和drive.appdata授权范围.如果您的应用需要Drive Android API中尚未提供的其他权限或功能,则必须使用Google API Java客户端.”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。