【问题标题】:Unable to get the shared with me files with the Google Drive Api using Filters.sharedWithMe()无法使用 Filters.sharedWithMe() 通过 Google Drive Api 获取与我共享的文件
【发布时间】:2014-11-14 11:39:04
【问题描述】:

我的 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 云端硬盘,还尝试将一些共享文件从 传入文件夹 移到 我的云端硬盘 根。依然没有。 如有任何帮助和建议,我将不胜感激。

【问题讨论】:

    标签: java android google-drive-api google-drive-android-api


    【解决方案1】:

    正如unable to query the files "shared with me" from google drive using Google drive api android 上所说,目前驱动器 API 只允许您访问应用程序创建的驱动器中的数据。

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

    您只看到一个文件夹,名为“App Data”

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

    注意:Google Drive Android API 目前仅支持 drive.file 和 drive.appfolder 授权范围。如果您的应用程序需要额外的权限或功能 尚未在 Drive Android API 中可用,您必须使用 Google APIs Java 客户端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 1970-01-01
      • 2022-07-31
      • 1970-01-01
      相关资源
      最近更新 更多