当前位置: 首页 > 面试题库 >

无法使用Filters.sharedWithMe()与Google云端硬盘Api获取与我共享的文件

司徒兴思
2023-03-14
问题内容

我的 Google云端硬盘 中有一些其他人与我共享的文件,我希望能够对其进行查询。不幸的是,MetadataBuffer的结果计数为0

这是代码:

private GoogleApiClient mGoogleApiClient;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);

    mGoogleApiClient = new GoogleApiClient.Builder(this).addApi(com.google.android.gms.drive.Drive.API)
            .addScope(com.google.android.gms.drive.Drive.SCOPE_FILE).addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this).build();

}

@Override
protected void onStart() {
    super.onStart();
    mGoogleApiClient.connect();
}

@Override
public void onConnected(Bundle arg0) {
    Query query = new Query.Builder().addFilter(Filters.sharedWithMe()).build();
    Drive.DriveApi.query(mGoogleApiClient, query).setResultCallback(metadataCallback);
}

private ResultCallback<DriveApi.MetadataBufferResult> metadataCallback =
        new ResultCallback<DriveApi.MetadataBufferResult>() {
            @Override
            public void onResult(DriveApi.MetadataBufferResult result) {
                if (!result.getStatus().isSuccess()) {
                    Log.d(TAG, "Problem while retrieving results");
                    return;
                }

                MetadataBuffer buffer = result.getMetadataBuffer();
                if(buffer != null) {
                    int cnt = buffer.getCount();
                    Log.d(TAG, "BUFFER COUNT: " + cnt);
                    for(int i = 0; i < cnt; i++) {
                        Metadata meta = buffer.get(i);
                        Log.d(TAG, meta.getTitle());
                    }
                    buffer.close();
                }
            }
        };

        ....................

我正在使用新的Google云端硬盘,并且还尝试将一些共享文件从“ 传入文件夹” 移到“ 我的云端硬盘”
根目录中。依然没有。我将不胜感激任何帮助和建议。


问题答案:

如前所述,在无法使用Google Drive api android从GoogleDrive查询“与我共享”的文件)时,目前Drive
API使您只能访问由应用程序制作的Drive中的数据。

您可以通过更改 Query query = new
Query.Builder()。addFilter(Filters.sharedWithMe())。build()
来自己验证
查询中查询= new Query.Builder()。build();

并且您仅看到一个文件夹,名为“ App Data”

要访问其他文件,您需要使用drive java
api,如https://developers.google.com/drive/android/auth#connecting_and_authorizing_the_google_drive_android_api中所述

注意:Google Drive Android
API当前仅支持drive.file和drive.appfolder授权范围。如果您的应用程序需要其他权限或云端硬盘Android
API中尚不可用的功能,则必须使用Google API Java Client。



 类似资料:
  • 问题内容: 我继续学习本教程时,我得到了错误,它是从那一行来的: 我已经安装了googleapis @ 27,这是我的package.json 我已经向Google报告过,但是为了希望今天完成这项工作,这里有人遇到过类似的问题吗? 问题答案: 请尝试一下。从v26.0.0起,它的用法已更改。https://github.com/google/google- api-nodejs-client/re

  • 问题内容: 我在Google云端硬盘上存储了一个zip文件(已公开共享)。我想知道如何在Golang中下载它。当前代码仅创建一个名为“ file.zip”的空白文件: 问题答案: 我找到了解决方案。使用:https://googledrive.com/host/ ID 而不是:https : //docs.google.com/uc?export=download& id = ID

  • 问题内容: 我想在Google云端硬盘中创建一个空的Google表格(仅使用元数据创建)。当我提到Google SpreadSheet API 文档时,它说要使用DocumentsList API,但已弃用,而是要求我使用Google Drive API。在云端硬盘API文档中,我找不到创建空工作表的任何方法。有人知道如何执行此操作吗? 问题答案: 您可以使用做这个驱动器的API被设置MIME类型

  • 问题内容: 我正在尝试授权我的应用程序与Google云端硬盘集成。Google文档提供了有关基于服务器的授权的详细信息以及各种服务器技术的代码示例。 还有一个JavaScript Google API库,该库支持授权。在Wiki的示例部分下方有一个代码片段,用于创建配置和调用authorize函数。我将范围更改为我认为需要驱动器的范围: 永远不会调用该回调函数(是的,已更正了GoogleAPI库的

  • 我在使用Google Drive API在Javascript应用程序中打开共享对话框时遇到JS错误。错误是:未捕获错误:语法错误:DOM异常12。 但是,当我注销所有Google帐户然后仅登录一个帐户时,共享对话框运行良好。一旦我在新选项卡中登录第二个帐户,共享对话框就不再工作并因上述错误而失败。 这与在Google Drive SDK上调用showSettingsDialog()非常类似,因为

  • 问题内容: 我正在创建一个通道,以接收应用程序上用户的更改。主要问题在于,经过2-3次网络连接后,我收到一条错误消息,提示用户已超出配额限制。 那没有意义,因为我只收到2条帖子(我在ngrok上看到了)。 我在驱动器API和配额上进入了Google控制台。每当我收到一个webhook时,查询量就会增加500个。因此,当用户进行两次更改而我收到两个webhooks时,查询数超过了Google允许的1