Iniciar sesión en Google Drive en Android sin agregar la cuenta de Google al dispositivo
Desarrollar una aplicación Android que necesita permitir el acceso de lectura / escritura a la unidad google del usuario. Además, se supone que se ejecute en dispositivos públicos (lo que significa que muchas personas pueden utilizar el mismo dispositivo para acceder a su cuenta de unidad de google). En tales circunstancias, es inaceptable agregar la cuenta de cada usuario al Administrador de cuentas de Android. Desafortunadamente, todas las guías oficiales, usan la autenticación con la cuenta de google registrada en el dispositivo. Aparecerá la ventana emergente de seleccionar cuentas de Google existentes desde el dispositivo o agregar una nueva.
protected void onStart() { super.onStart(); if (mGoogleApiClient == null) { mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(Drive.API) .addScope(Drive.SCOPE_FILE) // Optionally, add additional APIs and scopes if required. .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .build(); } mGoogleApiClient.connect(); } /** * Called when {@code mGoogleApiClient} is trying to connect but failed. * Handle {@code result.getResolution()} if there is a resolution * available. */ @Override public void onConnectionFailed(ConnectionResult result) { Log.i(TAG, "GoogleApiClient connection failed: " + result.toString()); if (!result.hasResolution()) { // Show a localized error dialog. GooglePlayServicesUtil.getErrorDialog( result.getErrorCode(), this, 0, new OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { retryConnecting(); } }).show(); return; } // If there is an existing resolution error being displayed or a resolution // activity has started before, do nothing and wait for resolution // progress to be completed. if (mIsInResolution) { return; } mIsInResolution = true; try { result.startResolutionForResult(this, REQUEST_CODE_RESOLUTION); } catch (SendIntentException e) { Log.e(TAG, "Exception while starting resolution activity", e); retryConnecting(); } }
¿Cuál es la solución? Necesito iniciar sesión en la cuenta de Google (en realidad sólo en la unidad) sin guardar la cuenta en el dispositivo. Sólo necesito iniciar sesión y cerrar sesión cuando termine, sin dejar ninguna información personal en el dispositivo. ¿Cómo puedo hacerlo?
- UserRecoverableAuthException: NeedPermission
- Reconocimiento de actividades de Google Play Services - ¿Uso de la batería?
- ¿Cómo proporcionar una ubicación con una AdRequest ahora que AdMob se ha convertido en parte de los Servicios de Google Play?
- Error al crear el proyecto Xamarin.Android con Google Play Services
- IllegalArgumentException al agregar una API de mensajería en la nube a GoogleApiClient
- Cómo implementar onConnectionFailed () y onDisconnected () para un servicio de ubicación
- Android Google Services nuevo archivo de configuración preguntas
- ¿La versión 3 de la facturación en aplicaciones de Google Play admite reembolsos?
- Lint se queja de que no se ha traducido la cadena gcm_defaultSenderId
- Android GPS no funciona hasta que se reinicie en nuevos teléfonos
- Los servicios de juegos no funcionan
- Android "No se pudo encontrar el método android.app.Notification $ Builder.setLocalOnly"
- Mensaje INVALID_KEY que intenta autenticarse mediante el botón de inicio de sesión de Google+
No es posible. Sólo se pueden seleccionar / utilizar las cuentas registradas en el dispositivo (autenticadas por los propios usuarios) para conectarse a GooDrive. Incluso si usted puede utilizar construir como:
mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(Drive.API) .addScope(Drive.SCOPE_FILE) // Optionally, add additional APIs and scopes if required. .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .setAccountName([[email protected]]) .build();
(Observe por favor el .setAccountName ([[email protected]]) ), el email todavía TIENE QUE SER una de las cuentas registradas del dispositivo. La aplicación no puede dirigirse a ninguna cuenta que el usuario no haya autenticado, sería de seguridad no-no, ¿no?
Buena suerte
- ¿Cómo tener un FAB con opción de no padding, pero aún así tener elevación?
- Pila de Android no está claro