Android Google Drive SDK-如何显示选定文件夹中的文件列表

Android Google Drive SDK-如何显示选定文件夹中的文件列表,android,google-api,google-drive-api,google-drive-android-api,Android,Google Api,Google Drive Api,Google Drive Android Api,我正在努力让我的代码正常工作 我希望我的应用程序(单击按钮时)显示驱动器根文件夹中的所有文件夹(和文件)。 但这似乎是不可能的,因为即使我使用Ouath2授权应用程序,应用程序也只能访问用户选择的文件和文件夹 这种行为很奇怪,因为当文件夹选择器打开时,如果内容是文件夹,它只列出该文件夹的内容。它根本不会列出任何文件 请专家看看我的代码,告诉我哪里出了问题 我正在使用PickFolderWithOpener活动获取驱动器ID。它根据用户从选择器中选择的内容返回driveID DriveId dr

我正在努力让我的代码正常工作

我希望我的应用程序(单击按钮时)显示驱动器根文件夹中的所有文件夹(和文件)。 但这似乎是不可能的,因为即使我使用Ouath2授权应用程序,应用程序也只能访问用户选择的文件和文件夹

这种行为很奇怪,因为当文件夹选择器打开时,如果内容是文件夹,它只列出该文件夹的内容。它根本不会列出任何文件

请专家看看我的代码,告诉我哪里出了问题

我正在使用
PickFolderWithOpener
活动获取驱动器ID。它根据用户从选择器中选择的内容返回driveID

 DriveId driveId = (DriveId) data.getParcelableExtra(
                            OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID);
这就是这里返回的文件夹驱动器ID吗?然后我需要调用intent
ListFilesInFolderActivity
。我想我必须在意向呼叫中传递这个driveID?如果我将DriveID格式化为字符串并传递它,它将失败 带有“找不到DriveId。您有权查看此文件吗?”消息

所以我要做的就是传递ResourceID

Intent intent = new Intent(this, ListFilesInFolderActivity.class);
                    intent.putExtra("DriveID", driveId.getResourceId());
                    startActivity(intent);
ListFileInfolderActivity中需要使用什么?
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);



 }
};
Bundle extras=getIntent().getExtras();
folderId=extras.getString(“DriveID”);//这是资源ID
Drive.DriveApi.fetchDriveId(getGoogleAppClient(),folderId)
.setResultCallback(idCallback);
final private ResultCallback idCallback=new ResultCallback(){
@凌驾
public void onResult(DriveIdResult结果){
如果(!result.getStatus().issucess()){
showMessage(“找不到DriveId。您有权查看此文件吗?”);
返回;
}
DriveFolder folder=Drive.DriveApi.getFolder(getGoogleAppClient(),result.getDriveId());
showMessage(“结果驱动ID为:”+Result.getDriveId());
folder.listChildren(getGoogleAppClient())
.setResultCallback(metadataResult);
}
};
这似乎有效,但它仅列出选定文件夹中的文件夹。它没有列出这些文件。 为什么
folder.listChildren(getGoogleAppClient())
不同时列出文件


希望这是我明显缺少的东西。

您不能用新的SDK实现这一点,因为它只允许范围文件访问


这就是为什么??“注意:Google Drive Android API目前仅支持Drive.file和Drive.appdata授权作用域。如果您的应用程序需要在Drive Android API中尚不可用的其他权限或功能,则必须使用Google API Java客户端。”

您的应用程序中的驱动作用域是什么?mGoogleApiClient=new GoogleApiClient.Builder(this).addApi(Drive.API).addScope(Drive.SCOPE_文件).addConnectionCallbacks(this).addOnConnectionFailedListener(this.build();这就是原因吗??“注意:Google Drive Android API目前仅支持Drive.file和Drive.appdata授权作用域。如果您的应用程序需要驱动器Android API中尚未提供的其他权限或功能,则必须使用Google API Java客户端。”。“尝试
DriveScopes.DRIVE
并查看是否列出了文件。类似于
credential=GoogleAccountCredential.usingOAuth2(this,Arrays.asList(DriveScopes.DRIVE));
我得到错误:无法解析符号DriveScopes。只有驱动器。我正在使用此Google API:感谢您提供的详细信息。”“注意:Google Drive Android API目前只支持Drive.file和Drive.appdata授权作用域。如果您的应用程序需要在Drive Android API中尚不可用的其他权限或功能,则必须使用Google API Java客户端。”!这一点非常重要!