Android 列出驱动器中的所有文件

Android 列出驱动器中的所有文件,android,google-drive-android-api,Android,Google Drive Android Api,我想使用Android版的Google Drive API列出用户驱动器根文件夹中的所有文件 我所尝试的: 使用SCOPE\u文件和listChildren: mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(Drive.API) .addScope(Drive.SCOPE_FILE) .addConnectionCallbacks(this) .addOnCo

我想使用Android版的Google Drive API列出用户驱动器根文件夹中的所有文件

我所尝试的:

  • 使用
    SCOPE\u文件
    listChildren

    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Drive.API)
            .addScope(Drive.SCOPE_FILE)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .build();
    
  • 然后列出文件:

    Drive.DriveApi.getRootFolder(mGoogleApiClient)
        .listChildren(mGoogleApiClient)
        .setResultCallback(new ResultCallback<DriveApi.MetadataBufferResult>() {
            @Override
            public void onResult(DriveApi.MetadataBufferResult result) {
                if (!result.getStatus().isSuccess()) {
                    Log.v("DKDK", "Request failed");
                    return;
                }
                MetadataBuffer metadataBuffer = result.getMetadataBuffer(); // empty!
            }
        }
    
    异常情况下失败:

    com.google.android.gms.drive.auth.c: Authorization failed: Unsupported scope: https://www.googleapis.com/auth/drive
    at com.google.android.gms.drive.auth.g.a(SourceFile:86)
    at com.google.android.gms.drive.api.e.<init>(SourceFile:230)
    at com.google.android.gms.drive.api.a.q.a(SourceFile:71)
    at com.google.android.gms.common.service.f.run(SourceFile:176)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    at com.google.android.gms.common.util.a.c.run(SourceFile:17)
    at java.lang.Thread.run(Thread.java:856)
    
    com.google.android.gms.drive.auth.c:授权失败:不支持的范围:https://www.googleapis.com/auth/drive
    位于com.google.android.gms.drive.auth.g.a(源文件:86)
    位于com.google.android.gms.drive.api.e.(源文件:230)
    位于com.google.android.gms.drive.api.a.q.a(源文件:71)
    位于com.google.android.gms.common.service.f.run(源文件:176)
    位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    位于com.google.android.gms.common.util.a.c.run(源文件:17)
    运行(Thread.java:856)
    
    是打算这样做,还是我遗漏了什么?

    你不能用Google Drive API(Android库)列出所有文件(不是应用程序创建的文件)。你应该使用谷歌驱动器RESTAPI

    您尝试使用的范围是RESTAPI

    以下是“文档”页面:


    注意:Android驱动器API仅适用于 范围这意味着 用户使用应用程序打开或创建的文件可以 由查询匹配


    谢谢你!虽然很疯狂。。。应该在他们的文档页面上用粗体大红字母书写!再次感谢!注意:Android驱动器API仅适用于此范围。这意味着查询只能匹配用户使用应用程序打开或创建的文件。
    com.google.android.gms.drive.auth.c: Authorization failed: Unsupported scope: https://www.googleapis.com/auth/drive
    at com.google.android.gms.drive.auth.g.a(SourceFile:86)
    at com.google.android.gms.drive.api.e.<init>(SourceFile:230)
    at com.google.android.gms.drive.api.a.q.a(SourceFile:71)
    at com.google.android.gms.common.service.f.run(SourceFile:176)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    at com.google.android.gms.common.util.a.c.run(SourceFile:17)
    at java.lang.Thread.run(Thread.java:856)