Sviluppo un'applicazione Android che deve consentire l'accesso in lettura/scrittura all'unità google dell'utente. Inoltre, si suppone che funzioni su dispositivi pubblici (il che significa che molte persone potrebbero utilizzare lo stesso dispositivo per accedere al proprio account di Google Drive). In tali circostanze, è inaccettabile aggiungere l'account di ciascun utente a Gestione account Android. Sfortunatamente, tutte le guide ufficiali utilizzano l'autenticazione con l'account google registrato sul dispositivo. Viene visualizzato il popup di selezione degli account Google esistenti dal dispositivo o l'aggiunta di uno nuovo.Accedi a Google Drive su Android senza aggiungere l'account google al dispositivo
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();
}
}
Qual è la soluzione? Devo accedere all'account google (in realtà solo sull'unità) senza salvare l'account sul dispositivo. Devo solo effettuare il login e il logout al termine, senza lasciare alcuna informazione personale sul dispositivo. Come posso farlo?
si potrebbe invece utilizzare un flusso Web in un browser incorporato. ma dovresti cancellare la cache ogni volta –
Sei sicuro che non c'è modo di ottenere ciò che voglio, usando google drive android api? – user2924714
no non sono sicuro. è un'alternativa. –