Comment télécharger le fichier google drive dans Android

Je voulais télécharger un fichier depuis Google Drive. Pour cela, j'ai mis en œuvre dans Google Drive SDK et j'ai utilisé la méthode suivante.

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case REQUEST_CODE_OPENER: if (resultCode == RESULT_OK) { DriveId driveId = (DriveId) data.getParcelableExtra( OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID); } finish(); break; default: super.onActivityResult(requestCode, resultCode, data); } } 

J'ai également essayé d'utiliser le flux de sortie, mais pas capable de sauvegarder des données dans un fichier.

J'ai essayé de rechercher cela, mais je n'ai pas trouvé de lien utile qui me permet de télécharger et stocker un fichier.

  • Exemples de projets sur la sauvegarde du fichier Sqlite et des photos sur Google Drive par programme dans Android
  • Ouvrir une extension de fichier personnalisée à partir de Google Drive sur Android
  • Énumération de dossiers et de fichiers à l'aide de Google Drive SDK V2
  • Android Google Drive SDK - comment afficher la liste des fichiers dans le dossier sélectionné
  • Java.lang.NoClassDefFoundError: com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential
  • Pour l'accès à l'API Google, puis-je créer plusieurs ID de client pour le même nom de package Android?
  • Google Drive API: le nom ne doit pas être vide: null (mais j'avais passé le nom de compte valide sur GoogleAccountCredential)
  • Utilisation du SDK Google Drive depuis Android
  • One Solution collect form web for “Comment télécharger le fichier google drive dans Android”

    OMI, vous devriez lire quelques liens utiles ci-dessous:

    API Google Drive Android – Guides – Travailler avec le contenu du fichier

    Démo de l'API Android Google Drive chez GitHub

    Ensuite, reportez-vous aux extraits suivants, bien sûr, lorsque vous obtenez le flux d'entrée, vous pouvez l'enregistrer dans un fichier de votre appareil au lieu d'imprimer sur Logcat.

     public class GoogleDriveActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { ... @Override protected void onCreate(Bundle savedInstanceState) { ... mProgressBar = (ProgressBar) findViewById(R.id.progressBar); mProgressBar.setMax(100); } @Override protected void onResume() { super.onResume(); if (mGoogleApiClient == null) { mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(Drive.API) .addScope(Drive.SCOPE_FILE) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .build(); } mGoogleApiClient.connect(); } @Override protected void onPause() { if (mGoogleApiClient != null) { mGoogleApiClient.disconnect(); } super.onPause(); } @Override protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { if (requestCode == RC_OPENER && resultCode == RESULT_OK) { mSelectedFileDriveId = data.getParcelableExtra( OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID); } } @Override public void onConnectionFailed(@NonNull ConnectionResult result) { // Called whenever the API client fails to connect. // Do something... } @Override public void onConnected(@Nullable Bundle bundle) { // If there is a selected file, open its contents. if (mSelectedFileDriveId != null) { open(); return; } // Let the user pick a file... IntentSender intentSender = Drive.DriveApi .newOpenFileActivityBuilder() .setMimeType(new String[]{"video/mp4", "image/jpeg", "text/plain"}) .build(mGoogleApiClient); try { startIntentSenderForResult(intentSender, RC_OPENER, null, 0, 0, 0); } catch (IntentSender.SendIntentException e) { Log.e(TAG, "Unable to send intent", e); } } @Override public void onConnectionSuspended(int i) { } private void open() { mProgressBar.setProgress(0); DriveFile.DownloadProgressListener listener = new DriveFile.DownloadProgressListener() { @Override public void onProgress(long bytesDownloaded, long bytesExpected) { // Update progress dialog with the latest progress. int progress = (int) (bytesDownloaded * 100 / bytesExpected); Log.d(TAG, String.format("Loading progress: %d percent", progress)); mProgressBar.setProgress(progress); } }; DriveFile driveFile = mSelectedFileDriveId.asDriveFile(); driveFile.open(mGoogleApiClient, DriveFile.MODE_READ_ONLY, listener) .setResultCallback(driveContentsCallback); mSelectedFileDriveId = null; } private final ResultCallback<DriveApi.DriveContentsResult> driveContentsCallback = new ResultCallback<DriveApi.DriveContentsResult>() { @Override public void onResult(@NonNull DriveApi.DriveContentsResult result) { if (!result.getStatus().isSuccess()) { Log.w(TAG, "Error while opening the file contents"); return; } Log.i(TAG, "File contents opened"); // Read from the input stream an print to LOGCAT DriveContents driveContents = result.getDriveContents(); BufferedReader reader = new BufferedReader(new InputStreamReader(driveContents.getInputStream())); StringBuilder builder = new StringBuilder(); String line; try { while ((line = reader.readLine()) != null) { builder.append(line); } } catch (IOException e) { e.printStackTrace(); } String contentsAsString = builder.toString(); Log.i(TAG, contentsAsString); // Close file contents driveContents.discard(mGoogleApiClient); } }; } 

    J'espère que cela aide!

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.