una tipos studio que proyectos proyecto primer plataforma pasos parte para móvil movil forman ficha elementos ejemplos ejemplo crear componentes componen bloques basicos aplicación aplicaciones aplicacion java android google-drive-sdk google-drive-android-api

java - tipos - No se puede encontrar DriveId. ¿Estás autorizado para ver este archivo? Integración con la unidad Android de Google



pasos para crear el primer proyecto android (4)

Creo que esto puede estar relacionado con nuestra discusión aquí . En caso afirmativo, le recomendaría que lo cierre allí, ya que la audiencia aquí es mucho más amplia. Por favor, consulte el código de github aquí para manejar su problema de cadena LEER / ESCRIBIR. El otro problema está relacionado con la autorización. Si estás en WIN7 / Eclipse, esto puede ser útil . La misma información está aquí también . En general, no esperes mucha ayuda, la API es bastante nueva y un objetivo móvil.

Estoy usando el código siguiente de github , pero muestra el siguiente error:

toast that Cannot find DriveId. Are you authorized to view this file?

No sé cuál es la razón detrás de esto.

He leído sobre la integración de Google Drive y quiero guardar STRING en la unidad de Google y también para recuperar. He usado esta demostración, pero me está dando errores. por favor, cualquiera me proporcione demo para mi requerimiento

/** * Copyright 2013 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing permissions and * limitations under the License. */ package com.google.android.gms.drive.sample.demo; import java.io.IOException; import java.io.OutputStream; import android.content.Context; import android.os.Bundle; import android.util.Log; import com.google.android.gms.common.api.ResultCallback; import com.google.android.gms.drive.Drive; import com.google.android.gms.drive.DriveApi.ContentsResult; import com.google.android.gms.drive.DriveApi.DriveIdResult; import com.google.android.gms.drive.DriveFile; /** * An activity to illustrate how to edit contents of a Drive file. */ public class EditContentsActivity extends BaseDemoActivity { private static final String TAG = "EditContentsActivity"; @Override public void onConnected(Bundle connectionHint) { super.onConnected(connectionHint); final ResultCallback<DriveIdResult> idCallback = new ResultCallback<DriveIdResult>() { @Override public void onResult(DriveIdResult result) { if (!result.getStatus().isSuccess()) { showMessage("Cannot find DriveId. Are you authorized to view this file?"); return; } DriveFile file = Drive.DriveApi.getFile(getGoogleApiClient(), result.getDriveId()); new EditContentsAsyncTask(EditContentsActivity.this).execute(file); } }; Drive.DriveApi.fetchDriveId(getGoogleApiClient(), EXISTING_FILE_ID) .setResultCallback(idCallback); } public class EditContentsAsyncTask extends ApiClientAsyncTask<DriveFile, Void, Boolean> { public EditContentsAsyncTask(Context context) { super(context); } @Override protected Boolean doInBackgroundConnected(DriveFile... args) { DriveFile file = args[0]; try { ContentsResult contentsResult = file.openContents( getGoogleApiClient(), DriveFile.MODE_WRITE_ONLY, null).await(); if (!contentsResult.getStatus().isSuccess()) { return false; } OutputStream outputStream = contentsResult.getContents().getOutputStream(); outputStream.write("Hello world".getBytes()); com.google.android.gms.common.api.Status status = file.commitAndCloseContents( getGoogleApiClient(), contentsResult.getContents()).await(); return status.getStatus().isSuccess(); } catch (IOException e) { Log.e(TAG, "IOException while appending to the output stream", e); } return false; } @Override protected void onPostExecute(Boolean result) { if (!result) { showMessage("Error while editing contents"); return; } showMessage("Successfully edited contents"); } } }


Tal como lo indica el mensaje, su aplicación debe estar autorizada para ver el archivo en particular para editarlo, ya que su aplicación tiene acceso al alcance Drive.File .

Puede obtener autorización para acceder al archivo particular haciendo que el usuario seleccione en el cuadro de diálogo Abrir archivo, o en virtud de haber creado el archivo.


El problema es que está usando el disco para acceder a la carpeta o archivo. Cuál está mal. deberías usar el resourceid de ese driveid como a continuación:

BaseDemoActivity.EXISTING_FOLDER_ID = driveId.getResourceId().toString();

cambie EXISTING_FOLDER_ID de estático a no estático. y use esa identificación para un uso posterior.


Puede ser que esté confundiendo ResourceId con DriveId . Intente utilizar ResourceId para EXISTING_FOLDER_ID o EXISTING_FILE_ID.

Puedes obtenerlo usando

driveId.getResourceId().toString()