Prośba o dodatkowe zakresy

.

Aby zadbać o wygodę użytkowników, wysyłaj żądania jak najmniejszej liczby zakresów, użytkowników jako pierwsze. Jeśli główna funkcjonalność aplikacji nie jest powiązana z w usłudze Google, konfiguracja GoogleSignInOptions.DEFAULT_SIGN_IN jest często potrzebne do zalogowania się.

Jeśli aplikacja ma funkcje, które mogą korzystać z danych interfejsu Google API, ale nie są są wymagane w ramach jej głównej funkcjonalności, należy ją zaprojektować w taki sposób, sprawnego radzenia sobie z przypadkami, gdy dane interfejsu API nie są dostępne. Przykład: Możesz ukryć listę ostatnio zapisanych plików, jeśli użytkownik nie przyznał Dysku dostęp.

Poproś o dodatkowe zakresy potrzebne tylko do korzystania z interfejsów API Google gdy użytkownik wykonuje działanie, które wymaga dostępu do określonego interfejsu API. Dla: możesz na przykład poprosić o dostęp do Dysku użytkownika tylko wtedy, gdy użytkownik klika „Zapisz na Dysku”. pierwszy raz.

Dzięki tej metodzie możesz uniknąć przytłoczenia nowych użytkowników użytkowników, aby dowiedzieć się, dlaczego wymagane są określone uprawnienia.

Prośba o uprawnienia wymagane przez działania użytkownika

Gdy użytkownik wykona działanie, które wymaga zakresu, który nie jest żądanym poziomem logowania, wywołaj GoogleSignIn.hasPermissions, aby sprawdzić, czy użytkownik już to zrobił ma wymagane uprawnienia. Jeśli nie, zadzwoń pod numer GoogleSignIn.requestPermissions aby uruchomić działanie, które żąda dodatkowych wymaganych zakresów użytkownika.

Na przykład jeśli użytkownik wykona działanie, które wymaga dostępu do jego Dysku pamięci aplikacji, wykonaj te czynności:

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();
}

W wywołaniu zwrotnym aktywności (onActivityResult) możesz sprawdzić, czy wymagane – jeśli tak, wykonaj działanie użytkownika.

@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();
        }
    }
}

Możesz też przekazać GoogleSignInOptionsExtension użytkownikowi hasPermissions i requestPermissions, aby dokładniej sprawdzić i uzyskać zestaw uprawnień dla wygody użytkowników.