Zusätzliche Bereiche anfordern

Für eine optimale Nutzererfahrung sollten Sie in folgenden Fällen so wenige Bereiche wie möglich anfordern: die erstmalige Anmeldung von Nutzern. Wenn die Hauptfunktion Ihrer App nicht an eine Google-Dienst ist die GoogleSignInOptions.DEFAULT_SIGN_IN-Konfiguration oft alles, was Sie brauchen.

Wenn Ihre App Funktionen enthält, die Google API-Daten nutzen können, die aber die für die Hauptfunktion Ihrer App erforderlich sind, sollten Sie Ihre App wenn API-Daten nicht zugänglich sind. Beispiel: Sie können eine Liste der zuletzt gespeicherten Dateien ausblenden, wenn der Nutzer Google Drive nicht zugestimmt hat Zugriff haben.

Sie sollten zusätzliche Bereiche anfordern, die Sie nur für den Zugriff auf Google APIs benötigen Der Nutzer führt eine Aktion aus, die Zugriff auf eine bestimmte API erfordert. Für Beispiel: Sie fordern möglicherweise nur dann eine Berechtigung für den Zugriff auf das Google Drive-Konto des Nutzers an, wenn der Nutzer tippen auf „In Google Drive speichern“ Schaltfläche zum ersten Mal.

So vermeidest du, dass du neue Nutzer überfordert warum sie nach bestimmten Berechtigungen gefragt werden.

Für Nutzeraktionen erforderliche Berechtigungen anfordern

Wenn ein Nutzer eine Aktion ausführt, die einen Bereich erfordert, der nicht angefordert wird, anmelden und GoogleSignIn.hasPermissions aufrufen, um zu prüfen, ob der Nutzer die erforderlichen Berechtigungen haben. Falls nicht, rufen Sie GoogleSignIn.requestPermissions an. um eine Aktivität zu starten, die die zusätzlichen erforderlichen Bereiche Nutzer.

Beispiel: Ein Nutzer führt eine Aktion aus, für die Zugriff auf sein Google Drive-Konto erforderlich ist. App-Speicher zu verwenden, gehen Sie so vor:

if (!GoogleSignIn.hasPermissions(
        GoogleSignIn.getLastSignedInAccount(getActivity()),
        Drive.SCOPE_APPFOLDER)) {
    GoogleSignIn.requestPermissions(
            MyExampleActivity.this,
            RC_REQUEST_PERMISSION_SUCCESS_CONTINUE_FILE_CREATION,
            GoogleSignIn.getLastSignedInAccount(getActivity()),
            Drive.SCOPE_APPFOLDER);
} else {
    saveToDriveAppFolder();
}

Im onActivityResult-Callback deiner Aktivität kannst du nachsehen, ob die erforderlichen Berechtigungen wurden erworben. Wenn ja, führen Sie die Nutzeraktion aus.

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == Activity.RESULT_OK) {
        if (RC_REQUEST_PERMISSION_SUCCESS_CONTINUE_FILE_CREATION == requestCode) {
            saveToDriveAppFolder();
        }
    }
}

Sie können auch eine GoogleSignInOptionsExtension an hasPermissions übergeben und requestPermissions, um weitere Berechtigungen zu prüfen und zu erhalten bequemer zu gestalten.