Ich entwickle eine Android-Anwendung, die Lese-/Schreibzugriff auf Benutzer Google Drive ermöglichen muss. Darüber hinaus soll es auf öffentlichen Geräten laufen (was bedeutet, dass viele Leute dasselbe Gerät benutzen, um auf ihr Google Drive-Konto zuzugreifen). Unter diesen Umständen ist es nicht akzeptabel, das Konto jedes Nutzers dem Android Account Manager hinzuzufügen. Leider verwenden alle offiziellen Guides die Authentifizierung mit dem auf dem Gerät registrierten Google-Konto. Das Popup zum Auswählen bestehender Google-Konten vom Gerät oder Hinzufügen eines neuen erscheint.LogIn auf Google Drive auf Android ohne Hinzufügen des Google-Kontos zum Gerät
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();
}
}
Was ist die Problemumgehung? Ich muss mich in das Google-Konto einloggen (eigentlich nur auf das Laufwerk), ohne das Konto auf dem Gerät zu speichern. Ich muss mich nur noch einloggen und abmelden, ohne irgendwelche persönlichen Daten auf dem Gerät zu hinterlassen. Wie kann ich es tun?
Sie könnten stattdessen einen Web-Flow in einem eingebetteten Browser verwenden. aber Sie müssten den Cache jedes Mal löschen –
Sind Sie sicher, dass es keine Möglichkeit gibt zu erreichen, was ich will, mit Google Drive Android API? – user2924714
nein ich bin nicht sicher. es ist eine Alternative. –