¿Integración de la unidad de Google en las aplicaciones de Android?
Necesito cargar archivos a la unidad de Google y ver / descargar los archivos que había cargado en mi aplicación android.Cómo hacer esto de la manera más sencilla ..? Cualquier sugerencia, códigos de ejemplo, explicaciones para hacer esto son bienvenidos. Agradeciendotelo de antemano .
PS: SIN INSTALAR GOOGLE DRIVE EN EL DISPOSITIVO ..
- Manera segura de resolver conflictos de dependencia para Drive y Dropbox?
- Notificaciones de la API REST de Google Drive no funcionan para cambios en la carpeta de aplicaciones
- Android Obtener la ruta de acceso de Uri a un archivo de Google Drive
- Get filepath desde la unidad de google en Lollipop (MediaStore.MediaColumns.DATA == null)
- Obtener nombre de usuario, avatar de google account
- Google Drive API - Android - ¿Cómo obtener un ID de unidad de disco?
- Google Drive OCR Android
- Problema de diálogo desconocido en los servicios de Google Play cuando intenta utilizar el ejemplo de Google Drive
- Cómo subir una copia de seguridad del teléfono Llamar / sms / contactos a Google Cloud
- Error de la carpeta principal no válida para AppFolder en Drive API
- Intent.ACTION_GET_CONTENT con Google Drive
- ¿Cómo puedo crear y editar un archivo de hoja de cálculo en una unidad de Google con las API de Google Drive solo desde mi aplicación para Android?
- ¿Cómo puedo cambiar cuentas en la NUEVA API de Google Drive para Android?
La forma más sencilla es seguir la guía de inicio rápido de Android para Drive
Explica cómo crear una aplicación de Android que suba fotos a Drive en menos de 10 minutos.
Consulte esta guía completa paso a paso
Código de carga sólo (todavía estoy averiguando cómo navegar por los archivos):
package com.example.drivequickstart; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import android.accounts.AccountManager; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.widget.Toast; import com.google.api.client.extensions.android.http.AndroidHttp; import com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential; import com.google.api.client.googleapis.extensions.android.gms.auth.UserRecoverableAuthIOException; import com.google.api.client.http.FileContent; import com.google.api.client.json.gson.GsonFactory; import com.google.api.services.drive.Drive; import com.google.api.services.drive.DriveScopes; import com.google.api.services.drive.model.File; public class MainActivity extends Activity { static final int REQUEST_ACCOUNT_PICKER = 1; static final int REQUEST_AUTHORIZATION = 2; static final int CAPTURE_IMAGE = 3; private static Uri fileUri; private static Drive service; private GoogleAccountCredential credential; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); credential = GoogleAccountCredential.usingOAuth2(this, DriveScopes.DRIVE); startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER); } @Override protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { switch (requestCode) { case REQUEST_ACCOUNT_PICKER: if (resultCode == RESULT_OK && data != null && data.getExtras() != null) { String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME); if (accountName != null) { credential.setSelectedAccountName(accountName); service = getDriveService(credential); startCameraIntent(); } } break; case REQUEST_AUTHORIZATION: if (resultCode == Activity.RESULT_OK) { saveFileToDrive(); } else { startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER); } break; case CAPTURE_IMAGE: if (resultCode == Activity.RESULT_OK) { saveFileToDrive(); } } } private void startCameraIntent() { String mediaStorageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getPath(); String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); fileUri = Uri.fromFile(new java.io.File(mediaStorageDir + java.io.File.separator + "IMG_" + timeStamp + ".jpg")); Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); startActivityForResult(cameraIntent, CAPTURE_IMAGE); } private void saveFileToDrive() { Thread t = new Thread(new Runnable() { @Override public void run() { try { // File's binary content java.io.File fileContent = new java.io.File(fileUri.getPath()); FileContent mediaContent = new FileContent("image/jpeg", fileContent); // File's metadata. File body = new File(); body.setTitle(fileContent.getName()); body.setMimeType("image/jpeg"); File file = service.files().insert(body, mediaContent).execute(); if (file != null) { showToast("Photo uploaded: " + file.getTitle()); startCameraIntent(); } } catch (UserRecoverableAuthIOException e) { startActivityForResult(e.getIntent(), REQUEST_AUTHORIZATION); } catch (IOException e) { e.printStackTrace(); } } }); t.start(); } private Drive getDriveService(GoogleAccountCredential credential) { return new Drive.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential).build(); } public void showToast(final String toast) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(getApplicationContext(), toast, Toast.LENGTH_SHORT).show(); } }); } }
La unidad de Google es accesible a través de la API de Google Drive, la demo de ejemplo es creada por la gente de android en la ruta de abajo que es muy útil y proporciona una muestra de todas las capacidades. Siga el siguiente enlace Git hub demo para Google Drive API
- Acceso / sdcard en Android 4.2
- Android Cambiando dinámicamente el tamaño del círculo sólo la mitad del círculo se actualiza correctamente