Получить все папки google drive api на Android

Я использую новый api-диск Google, и я не могу получить все папки с моего Google-диска, я получаю только папки, которые я создаю с помощью google-диска api … Кто-нибудь знает, почему это происходит?

Это мой код:

@Override protected void onResume() { super.onResume(); if (mGoogleApiClient == null) { // Create the API client and bind it to an instance variable. // We use this instance as the callback for connection and connection // failures. // Since no account name is passed, the user is prompted to choose. mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(Drive.API) .addScope(Drive.SCOPE_FILE) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .build(); } // Connect the client. Once connected, the camera is launched. mGoogleApiClient.connect(); } /** * Handles resolution callbacks. */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE_RESOLUTION && resultCode == RESULT_OK) { mGoogleApiClient.connect(); } } /** * Called when activity gets invisible. Connection to Drive service needs to * be disconnected as soon as an activity is invisible. */ @Override protected void onPause() { if (mGoogleApiClient != null) { mGoogleApiClient.disconnect(); } super.onPause(); } /** * Called when {@code mGoogleApiClient} is connected. */ @Override public void onConnected(Bundle connectionHint) { Log.i(TAG, "GoogleApiClient connected"); rootFolder = Drive.DriveApi.getRootFolder(mGoogleApiClient); rootFolder.listChildren(getGoogleApiClient()).setResultCallback(pruebaChildren); } ResultCallback<DriveApi.MetadataBufferResult> pruebaChildren = new ResultCallback<DriveApi.MetadataBufferResult>() { @Override public void onResult(DriveApi.MetadataBufferResult metadataBufferResult) { if (!metadataBufferResult.getStatus().isSuccess()) { showMessage("Problem while retrieving files"); return; } Log.i(TAG,"got root folder"); MetadataBuffer buffer = metadataBufferResult.getMetadataBuffer(); Log.i(TAG,"Buffer count " + buffer.getCount()); if(buffer.getCount() == 0){ createFolderApp(); } else{ for(Metadata m : buffer){ Log.i(TAG,"Metadata name " + m.getTitle() + "(" + (m.isFolder() ? "folder" : "file") + ")"); if (m.isFolder() && m.getTitle().equals(TAG)){ Log.i(TAG,"APP FOLDER FOUND"); Drive.DriveApi.getFolder(mGoogleApiClient, m.getDriveId()) .listChildren(mGoogleApiClient) .setResultCallback(foreachAppAplication); } } } return; } }; 

И теперь я хочу видеть все папки в корневом корневом диске, я пытаюсь выполнить запросSync (), но результат такой же … Мне нужна помощь, пожалуйста!

И еще один вопрос: как я могу установить AppFolder? Я вижу только getAppFolder, но как я могу установить?

благодаря

По дизайну GDAA поддерживает только область FILE, то есть найдет / перечислит только папки / файлы, созданные приложением Android.

Есть два способа обойти это:

  1. Используйте один из намерений GDAA, в основном позволяя пользователю выбрать файл / папку. Таким образом, он станет доступен вашему приложению.
  2. Используйте другой API, REST Api, который поддерживает область DRIVE, предоставляя вашему приложению полный набор файлов / папок.

Если вы хотите изучить, как ведут себя два API, я поместил две разные демоверсии в Github (демонстрационные ролики REST и GDAA CRUD).

Во второй части вашего вопроса нет ответа. Вы не устанавливаете папку приложения, вы можете получить только идентификатор DriveFolder. Вы используете его для создания / извлечения объектов.

  DriveFolder appFldr = Drive.DriveApi.getAppFolder(mGooleApiClient); appFldr.createFile(...); appFldr.createFolder(...); appFldr.listChildren(...); appFldr.queryChildren(...); 

… и не забудьте добавить область SCOPE_APPFOLDER

Удачи