gpt4 book ai didi

android - 无法使用新的 Drive API 检索 Google Drive 文件和文件夹

转载 作者:太空宇宙 更新时间:2023-11-03 13:01:20 25 4
gpt4 key购买 nike

我正在尝试从我的 Android 应用程序中获取 Google Drive 文件夹中的文件列表,但到目前为止没有成功。我正在使用 google-api-drive-v1-rev4-java-1.6.0-beta 和 google-api-client-1.9.0。我还在构建我的代码,类似于 http://code.google.com/p/google-api-java-client/wiki/Android 中的示例中的 calendar-android-sample 和 tasks-android-sample .

我似乎无法找到如何使用 files() 来获取文件夹列表甚至我想要的文件夹的 ID。 tasks-android-sample 在 get() 方法中使用“@default”来获取任务列表。我将在 get 方法中使用什么来首先获取文件夹列表,搜索我的文件夹,获取 id,然后获取该文件夹中的文件列表?

AsyncLoadDocs.java:(注意:我使用 getFields() 只是为了查看 Get 对象是否包含任何元数据,此时不包含任何元数据。)

package com.mysite.myapp.docs;

import com.google.api.services.drive.Drive;
import com.google.api.services.drive.Drive.Files;
import com.google.api.services.drive.Drive.Files.Get;
import com.google.api.services.drive.model.File;

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.ArrayAdapter;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
* Asynchronously load the docs with a progress dialog.
*
* @author ms
*/
class AsyncLoadDocs extends AsyncTask<Void, Void, List<String>> {

private static final String TAG = "AsyncLoadDocs";
private final GDocsSync gDocsSync;
private final ProgressDialog dialog;
private final Drive entry = null;
private com.google.api.services.drive.Drive service;

AsyncLoadDocs(GDocsSync gDocsSync) {
this.gDocsSync = gDocsSync;
service = gDocsSync.driveClient;
dialog = new ProgressDialog(gDocsSync);
}

@Override
protected void onPreExecute() {
dialog.setMessage("Loading docs...");
dialog.show();
}

@Override
protected List<String> doInBackground(Void... arg0) {
try {
List<String> folderNames = new ArrayList<String>();

Get get = service.files().get("@default").setProjection("FULL");
String fields = get.getFields();
Log.d(TAG, "Fields: " + fields);

return folderNames;
} catch (IOException e) {
gDocsSync.handleGoogleException(e);
return Collections.singletonList(e.getMessage());
} finally {
gDocsSync.onRequestCompleted();
}
}

@Override
protected void onPostExecute(List<String> result) {
dialog.dismiss();
}
}

如有任何帮助,我们将不胜感激。日历和任务示例都使用我的 API key 成功地从 Google 检索数据,为什么这个云端硬盘代码没有?

最佳答案

Drive API 仅授予对两类文件的访问权限:

  • 用户使用给定云端硬盘应用创建的文件
  • 用户使用给定云端硬盘应用打开的文件

出于安全原因,无法列出用户云端硬盘帐户中的所有文件:

https://developers.google.com/drive/apps_overview#granting_file-level_access

有关 Android 环境中的更多选项,请查看这些其他答案:

关于android - 无法使用新的 Drive API 检索 Google Drive 文件和文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10934525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com