Я пытаюсь получить список файлов в папке с Google Диска из моего приложения Android, но пока не увенчался успехом. Я использую google-api-drive-v1-rev4-java-1.6.0-бета и google-api-client-1.9.0. Я также строю свой код, похожий на пример-календар-андроид-образец и задачи-андроид-образец из образцов на http://code.google.com/p/google-api-java-client/wiki/Android.Не удалось извлечь файлы и папки Google Диска с помощью нового API накопителей
Я не могу найти, как использовать файлы(), чтобы получить список папок или даже идентификатор папки, которую я хочу. Задачи-android-sample используют метод @default в методе get() для получения списка задач. Что бы я использовал в методе get, чтобы сначала получить список папок, найти папку, получить идентификатор, а затем получить список файлов в этой папке?
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();
}
}
Любая помощь будет оценена , Образцы «Календаря» и «Задачи» успешно извлекают данные из Google с помощью моего ключа API, почему код этого диска отсутствует?
Благодаря Клаудио, что имеет смысл. Для моих целей мне не нужен доступ ко всем файлам, только к моей папке. Поэтому, я думаю, мне нужно создать папку с моим приложением, а затем получить доступ именно к этому. Тем временем я начал внедрять интеграцию с помощью docs api. Я сталкиваюсь с проблемами, когда я возвращаю тип/html вместо xml и должен выяснить, что происходит там. Я планирую посетить вашу сессию (https://developers.google.com/events/io/sessions/gooio2012/705/) о том, как интегрировать диск с Android в Google IO, и, возможно, мы можем поболтать? – phoeniix